/*
Copyright 2020 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package io.kubernetes.client.proto;

public final class V1 {
  private V1() {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {}

  public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {
    registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
  }

  public interface AWSElasticBlockStoreVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    boolean hasVolumeID();
    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    java.lang.String getVolumeID();
    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeIDBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    boolean hasPartition();
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    int getPartition();

    /**
     *
     *
     * <pre>
     * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
     * If omitted, the default is "false".
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
     * If omitted, the default is "false".
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Persistent Disk resource in AWS.
   * An AWS EBS disk must exist before mounting to a container. The disk
   * must also be in the same AWS zone as the kubelet. An AWS EBS disk
   * can only be mounted as read/write once. AWS EBS volumes support
   * ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource}
   */
  public static final class AWSElasticBlockStoreVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource)
      AWSElasticBlockStoreVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AWSElasticBlockStoreVolumeSource.newBuilder() to construct.
    private AWSElasticBlockStoreVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AWSElasticBlockStoreVolumeSource() {
      volumeID_ = "";
      fsType_ = "";
      partition_ = 0;
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AWSElasticBlockStoreVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                partition_ = input.readInt32();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.class,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeID_;
    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public boolean hasVolumeID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public java.lang.String getVolumeID() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeIDBytes() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARTITION_FIELD_NUMBER = 3;
    private int partition_;
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    public boolean hasPartition() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    public int getPartition() {
      return partition_;
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
     * If omitted, the default is "false".
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
     * If omitted, the default is "false".
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, partition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, partition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource other =
          (io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeID() == other.hasVolumeID());
      if (hasVolumeID()) {
        result = result && getVolumeID().equals(other.getVolumeID());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasPartition() == other.hasPartition());
      if (hasPartition()) {
        result = result && (getPartition() == other.getPartition());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeID()) {
        hash = (37 * hash) + VOLUMEID_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeID().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasPartition()) {
        hash = (37 * hash) + PARTITION_FIELD_NUMBER;
        hash = (53 * hash) + getPartition();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Persistent Disk resource in AWS.
     * An AWS EBS disk must exist before mounting to a container. The disk
     * must also be in the same AWS zone as the kubelet. An AWS EBS disk
     * can only be mounted as read/write once. AWS EBS volumes support
     * ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource)
        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.class,
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        partition_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource build() {
        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource result =
            new io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeID_ = volumeID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.partition_ = partition_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeID()) {
          bitField0_ |= 0x00000001;
          volumeID_ = other.volumeID_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasPartition()) {
          setPartition(other.getPartition());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeID_ = "";
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public boolean hasVolumeID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public java.lang.String getVolumeID() {
        java.lang.Object ref = volumeID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeIDBytes() {
        java.lang.Object ref = volumeID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder clearVolumeID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeID_ = getDefaultInstance().getVolumeID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique ID of the persistent disk resource in AWS (Amazon EBS volume).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private int partition_;
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public boolean hasPartition() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public int getPartition() {
        return partition_;
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public Builder setPartition(int value) {
        bitField0_ |= 0x00000004;
        partition_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public Builder clearPartition() {
        bitField0_ = (bitField0_ & ~0x00000004);
        partition_ = 0;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
       * If omitted, the default is "false".
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
       * If omitted, the default is "false".
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
       * If omitted, the default is "false".
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify "true" to force and set the ReadOnly property in VolumeMounts to "true".
       * If omitted, the default is "false".
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource)
    private static final io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AWSElasticBlockStoreVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<AWSElasticBlockStoreVolumeSource>() {
          @java.lang.Override
          public AWSElasticBlockStoreVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AWSElasticBlockStoreVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AWSElasticBlockStoreVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AWSElasticBlockStoreVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AffinityOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Affinity)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    boolean hasNodeAffinity();
    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeAffinity getNodeAffinity();
    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeAffinityOrBuilder getNodeAffinityOrBuilder();

    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    boolean hasPodAffinity();
    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodAffinity getPodAffinity();
    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodAffinityOrBuilder getPodAffinityOrBuilder();

    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    boolean hasPodAntiAffinity();
    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodAntiAffinity getPodAntiAffinity();
    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder getPodAntiAffinityOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Affinity is a group of affinity scheduling rules.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Affinity}
   */
  public static final class Affinity extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Affinity)
      AffinityOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Affinity.newBuilder() to construct.
    private Affinity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Affinity() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Affinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.NodeAffinity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = nodeAffinity_.toBuilder();
                }
                nodeAffinity_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeAffinity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nodeAffinity_);
                  nodeAffinity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodAffinity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = podAffinity_.toBuilder();
                }
                podAffinity_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodAffinity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(podAffinity_);
                  podAffinity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.PodAntiAffinity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = podAntiAffinity_.toBuilder();
                }
                podAntiAffinity_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodAntiAffinity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(podAntiAffinity_);
                  podAntiAffinity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Affinity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Affinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Affinity.class,
              io.kubernetes.client.proto.V1.Affinity.Builder.class);
    }

    private int bitField0_;
    public static final int NODEAFFINITY_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.NodeAffinity nodeAffinity_;
    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    public boolean hasNodeAffinity() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeAffinity getNodeAffinity() {
      return nodeAffinity_ == null
          ? io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()
          : nodeAffinity_;
    }
    /**
     *
     *
     * <pre>
     * Describes node affinity scheduling rules for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeAffinityOrBuilder getNodeAffinityOrBuilder() {
      return nodeAffinity_ == null
          ? io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()
          : nodeAffinity_;
    }

    public static final int PODAFFINITY_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodAffinity podAffinity_;
    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    public boolean hasPodAffinity() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodAffinity getPodAffinity() {
      return podAffinity_ == null
          ? io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()
          : podAffinity_;
    }
    /**
     *
     *
     * <pre>
     * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityOrBuilder getPodAffinityOrBuilder() {
      return podAffinity_ == null
          ? io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()
          : podAffinity_;
    }

    public static final int PODANTIAFFINITY_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.PodAntiAffinity podAntiAffinity_;
    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    public boolean hasPodAntiAffinity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodAntiAffinity getPodAntiAffinity() {
      return podAntiAffinity_ == null
          ? io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance()
          : podAntiAffinity_;
    }
    /**
     *
     *
     * <pre>
     * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder getPodAntiAffinityOrBuilder() {
      return podAntiAffinity_ == null
          ? io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance()
          : podAntiAffinity_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getNodeAffinity());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPodAffinity());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getPodAntiAffinity());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getNodeAffinity());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPodAffinity());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getPodAntiAffinity());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Affinity)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Affinity other = (io.kubernetes.client.proto.V1.Affinity) obj;

      boolean result = true;
      result = result && (hasNodeAffinity() == other.hasNodeAffinity());
      if (hasNodeAffinity()) {
        result = result && getNodeAffinity().equals(other.getNodeAffinity());
      }
      result = result && (hasPodAffinity() == other.hasPodAffinity());
      if (hasPodAffinity()) {
        result = result && getPodAffinity().equals(other.getPodAffinity());
      }
      result = result && (hasPodAntiAffinity() == other.hasPodAntiAffinity());
      if (hasPodAntiAffinity()) {
        result = result && getPodAntiAffinity().equals(other.getPodAntiAffinity());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNodeAffinity()) {
        hash = (37 * hash) + NODEAFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getNodeAffinity().hashCode();
      }
      if (hasPodAffinity()) {
        hash = (37 * hash) + PODAFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getPodAffinity().hashCode();
      }
      if (hasPodAntiAffinity()) {
        hash = (37 * hash) + PODANTIAFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getPodAntiAffinity().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Affinity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Affinity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Affinity is a group of affinity scheduling rules.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Affinity}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Affinity)
        io.kubernetes.client.proto.V1.AffinityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Affinity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Affinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Affinity.class,
                io.kubernetes.client.proto.V1.Affinity.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Affinity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getNodeAffinityFieldBuilder();
          getPodAffinityFieldBuilder();
          getPodAntiAffinityFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = null;
        } else {
          nodeAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (podAffinityBuilder_ == null) {
          podAffinity_ = null;
        } else {
          podAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (podAntiAffinityBuilder_ == null) {
          podAntiAffinity_ = null;
        } else {
          podAntiAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Affinity_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Affinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Affinity.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Affinity build() {
        io.kubernetes.client.proto.V1.Affinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Affinity buildPartial() {
        io.kubernetes.client.proto.V1.Affinity result =
            new io.kubernetes.client.proto.V1.Affinity(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (nodeAffinityBuilder_ == null) {
          result.nodeAffinity_ = nodeAffinity_;
        } else {
          result.nodeAffinity_ = nodeAffinityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (podAffinityBuilder_ == null) {
          result.podAffinity_ = podAffinity_;
        } else {
          result.podAffinity_ = podAffinityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (podAntiAffinityBuilder_ == null) {
          result.podAntiAffinity_ = podAntiAffinity_;
        } else {
          result.podAntiAffinity_ = podAntiAffinityBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Affinity) {
          return mergeFrom((io.kubernetes.client.proto.V1.Affinity) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Affinity other) {
        if (other == io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()) return this;
        if (other.hasNodeAffinity()) {
          mergeNodeAffinity(other.getNodeAffinity());
        }
        if (other.hasPodAffinity()) {
          mergePodAffinity(other.getPodAffinity());
        }
        if (other.hasPodAntiAffinity()) {
          mergePodAntiAffinity(other.getPodAntiAffinity());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Affinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Affinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.NodeAffinity nodeAffinity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeAffinity,
              io.kubernetes.client.proto.V1.NodeAffinity.Builder,
              io.kubernetes.client.proto.V1.NodeAffinityOrBuilder>
          nodeAffinityBuilder_;
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public boolean hasNodeAffinity() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAffinity getNodeAffinity() {
        if (nodeAffinityBuilder_ == null) {
          return nodeAffinity_ == null
              ? io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()
              : nodeAffinity_;
        } else {
          return nodeAffinityBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public Builder setNodeAffinity(io.kubernetes.client.proto.V1.NodeAffinity value) {
        if (nodeAffinityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nodeAffinity_ = value;
          onChanged();
        } else {
          nodeAffinityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public Builder setNodeAffinity(
          io.kubernetes.client.proto.V1.NodeAffinity.Builder builderForValue) {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = builderForValue.build();
          onChanged();
        } else {
          nodeAffinityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public Builder mergeNodeAffinity(io.kubernetes.client.proto.V1.NodeAffinity value) {
        if (nodeAffinityBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && nodeAffinity_ != null
              && nodeAffinity_ != io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()) {
            nodeAffinity_ =
                io.kubernetes.client.proto.V1.NodeAffinity.newBuilder(nodeAffinity_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nodeAffinity_ = value;
          }
          onChanged();
        } else {
          nodeAffinityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public Builder clearNodeAffinity() {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = null;
          onChanged();
        } else {
          nodeAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAffinity.Builder getNodeAffinityBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getNodeAffinityFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAffinityOrBuilder getNodeAffinityOrBuilder() {
        if (nodeAffinityBuilder_ != null) {
          return nodeAffinityBuilder_.getMessageOrBuilder();
        } else {
          return nodeAffinity_ == null
              ? io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()
              : nodeAffinity_;
        }
      }
      /**
       *
       *
       * <pre>
       * Describes node affinity scheduling rules for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeAffinity nodeAffinity = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeAffinity,
              io.kubernetes.client.proto.V1.NodeAffinity.Builder,
              io.kubernetes.client.proto.V1.NodeAffinityOrBuilder>
          getNodeAffinityFieldBuilder() {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinityBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeAffinity,
                  io.kubernetes.client.proto.V1.NodeAffinity.Builder,
                  io.kubernetes.client.proto.V1.NodeAffinityOrBuilder>(
                  getNodeAffinity(), getParentForChildren(), isClean());
          nodeAffinity_ = null;
        }
        return nodeAffinityBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodAffinity podAffinity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinity,
              io.kubernetes.client.proto.V1.PodAffinity.Builder,
              io.kubernetes.client.proto.V1.PodAffinityOrBuilder>
          podAffinityBuilder_;
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public boolean hasPodAffinity() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinity getPodAffinity() {
        if (podAffinityBuilder_ == null) {
          return podAffinity_ == null
              ? io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()
              : podAffinity_;
        } else {
          return podAffinityBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public Builder setPodAffinity(io.kubernetes.client.proto.V1.PodAffinity value) {
        if (podAffinityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          podAffinity_ = value;
          onChanged();
        } else {
          podAffinityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public Builder setPodAffinity(
          io.kubernetes.client.proto.V1.PodAffinity.Builder builderForValue) {
        if (podAffinityBuilder_ == null) {
          podAffinity_ = builderForValue.build();
          onChanged();
        } else {
          podAffinityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public Builder mergePodAffinity(io.kubernetes.client.proto.V1.PodAffinity value) {
        if (podAffinityBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && podAffinity_ != null
              && podAffinity_ != io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()) {
            podAffinity_ =
                io.kubernetes.client.proto.V1.PodAffinity.newBuilder(podAffinity_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            podAffinity_ = value;
          }
          onChanged();
        } else {
          podAffinityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public Builder clearPodAffinity() {
        if (podAffinityBuilder_ == null) {
          podAffinity_ = null;
          onChanged();
        } else {
          podAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinity.Builder getPodAffinityBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPodAffinityFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityOrBuilder getPodAffinityOrBuilder() {
        if (podAffinityBuilder_ != null) {
          return podAffinityBuilder_.getMessageOrBuilder();
        } else {
          return podAffinity_ == null
              ? io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()
              : podAffinity_;
        }
      }
      /**
       *
       *
       * <pre>
       * Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinity podAffinity = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinity,
              io.kubernetes.client.proto.V1.PodAffinity.Builder,
              io.kubernetes.client.proto.V1.PodAffinityOrBuilder>
          getPodAffinityFieldBuilder() {
        if (podAffinityBuilder_ == null) {
          podAffinityBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodAffinity,
                  io.kubernetes.client.proto.V1.PodAffinity.Builder,
                  io.kubernetes.client.proto.V1.PodAffinityOrBuilder>(
                  getPodAffinity(), getParentForChildren(), isClean());
          podAffinity_ = null;
        }
        return podAffinityBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodAntiAffinity podAntiAffinity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAntiAffinity,
              io.kubernetes.client.proto.V1.PodAntiAffinity.Builder,
              io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder>
          podAntiAffinityBuilder_;
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public boolean hasPodAntiAffinity() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodAntiAffinity getPodAntiAffinity() {
        if (podAntiAffinityBuilder_ == null) {
          return podAntiAffinity_ == null
              ? io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance()
              : podAntiAffinity_;
        } else {
          return podAntiAffinityBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public Builder setPodAntiAffinity(io.kubernetes.client.proto.V1.PodAntiAffinity value) {
        if (podAntiAffinityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          podAntiAffinity_ = value;
          onChanged();
        } else {
          podAntiAffinityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public Builder setPodAntiAffinity(
          io.kubernetes.client.proto.V1.PodAntiAffinity.Builder builderForValue) {
        if (podAntiAffinityBuilder_ == null) {
          podAntiAffinity_ = builderForValue.build();
          onChanged();
        } else {
          podAntiAffinityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public Builder mergePodAntiAffinity(io.kubernetes.client.proto.V1.PodAntiAffinity value) {
        if (podAntiAffinityBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && podAntiAffinity_ != null
              && podAntiAffinity_
                  != io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance()) {
            podAntiAffinity_ =
                io.kubernetes.client.proto.V1.PodAntiAffinity.newBuilder(podAntiAffinity_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            podAntiAffinity_ = value;
          }
          onChanged();
        } else {
          podAntiAffinityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public Builder clearPodAntiAffinity() {
        if (podAntiAffinityBuilder_ == null) {
          podAntiAffinity_ = null;
          onChanged();
        } else {
          podAntiAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodAntiAffinity.Builder getPodAntiAffinityBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getPodAntiAffinityFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder getPodAntiAffinityOrBuilder() {
        if (podAntiAffinityBuilder_ != null) {
          return podAntiAffinityBuilder_.getMessageOrBuilder();
        } else {
          return podAntiAffinity_ == null
              ? io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance()
              : podAntiAffinity_;
        }
      }
      /**
       *
       *
       * <pre>
       * Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAntiAffinity podAntiAffinity = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAntiAffinity,
              io.kubernetes.client.proto.V1.PodAntiAffinity.Builder,
              io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder>
          getPodAntiAffinityFieldBuilder() {
        if (podAntiAffinityBuilder_ == null) {
          podAntiAffinityBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodAntiAffinity,
                  io.kubernetes.client.proto.V1.PodAntiAffinity.Builder,
                  io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder>(
                  getPodAntiAffinity(), getParentForChildren(), isClean());
          podAntiAffinity_ = null;
        }
        return podAntiAffinityBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Affinity)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Affinity)
    private static final io.kubernetes.client.proto.V1.Affinity DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Affinity();
    }

    public static io.kubernetes.client.proto.V1.Affinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Affinity> PARSER =
        new com.google.protobuf.AbstractParser<Affinity>() {
          @java.lang.Override
          public Affinity parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Affinity(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Affinity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Affinity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Affinity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AttachedVolumeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AttachedVolume)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    boolean hasDevicePath();
    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    java.lang.String getDevicePath();
    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    com.google.protobuf.ByteString getDevicePathBytes();
  }
  /**
   *
   *
   * <pre>
   * AttachedVolume describes a volume attached to a node
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AttachedVolume}
   */
  public static final class AttachedVolume extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AttachedVolume)
      AttachedVolumeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AttachedVolume.newBuilder() to construct.
    private AttachedVolume(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AttachedVolume() {
      name_ = "";
      devicePath_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AttachedVolume(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                devicePath_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AttachedVolume_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AttachedVolume.class,
              io.kubernetes.client.proto.V1.AttachedVolume.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the attached volume
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICEPATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object devicePath_;
    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public boolean hasDevicePath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public java.lang.String getDevicePath() {
      java.lang.Object ref = devicePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          devicePath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * DevicePath represents the device path where the volume should be available
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public com.google.protobuf.ByteString getDevicePathBytes() {
      java.lang.Object ref = devicePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        devicePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, devicePath_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, devicePath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AttachedVolume)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AttachedVolume other =
          (io.kubernetes.client.proto.V1.AttachedVolume) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasDevicePath() == other.hasDevicePath());
      if (hasDevicePath()) {
        result = result && getDevicePath().equals(other.getDevicePath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasDevicePath()) {
        hash = (37 * hash) + DEVICEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getDevicePath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.AttachedVolume prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * AttachedVolume describes a volume attached to a node
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AttachedVolume}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AttachedVolume)
        io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AttachedVolume_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AttachedVolume.class,
                io.kubernetes.client.proto.V1.AttachedVolume.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.AttachedVolume.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        devicePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AttachedVolume getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AttachedVolume.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AttachedVolume build() {
        io.kubernetes.client.proto.V1.AttachedVolume result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AttachedVolume buildPartial() {
        io.kubernetes.client.proto.V1.AttachedVolume result =
            new io.kubernetes.client.proto.V1.AttachedVolume(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.devicePath_ = devicePath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AttachedVolume) {
          return mergeFrom((io.kubernetes.client.proto.V1.AttachedVolume) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.AttachedVolume other) {
        if (other == io.kubernetes.client.proto.V1.AttachedVolume.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasDevicePath()) {
          bitField0_ |= 0x00000002;
          devicePath_ = other.devicePath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AttachedVolume parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.AttachedVolume) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the attached volume
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object devicePath_ = "";
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public boolean hasDevicePath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public java.lang.String getDevicePath() {
        java.lang.Object ref = devicePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            devicePath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public com.google.protobuf.ByteString getDevicePathBytes() {
        java.lang.Object ref = devicePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          devicePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder setDevicePath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        devicePath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder clearDevicePath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        devicePath_ = getDefaultInstance().getDevicePath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * DevicePath represents the device path where the volume should be available
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder setDevicePathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        devicePath_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AttachedVolume)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AttachedVolume)
    private static final io.kubernetes.client.proto.V1.AttachedVolume DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AttachedVolume();
    }

    public static io.kubernetes.client.proto.V1.AttachedVolume getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AttachedVolume> PARSER =
        new com.google.protobuf.AbstractParser<AttachedVolume>() {
          @java.lang.Override
          public AttachedVolume parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AttachedVolume(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AttachedVolume> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AttachedVolume> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AttachedVolume getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AvoidPodsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AvoidPods)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry> getPreferAvoidPodsList();
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getPreferAvoidPods(int index);
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    int getPreferAvoidPodsCount();
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>
        getPreferAvoidPodsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder getPreferAvoidPodsOrBuilder(
        int index);
  }
  /**
   *
   *
   * <pre>
   * AvoidPods describes pods that should avoid this node. This is the value for a
   * Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and
   * will eventually become a field of NodeStatus.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AvoidPods}
   */
  public static final class AvoidPods extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AvoidPods)
      AvoidPodsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AvoidPods.newBuilder() to construct.
    private AvoidPods(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AvoidPods() {
      preferAvoidPods_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AvoidPods(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  preferAvoidPods_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry>();
                  mutable_bitField0_ |= 0x00000001;
                }
                preferAvoidPods_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          preferAvoidPods_ = java.util.Collections.unmodifiableList(preferAvoidPods_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_AvoidPods_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AvoidPods_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AvoidPods.class,
              io.kubernetes.client.proto.V1.AvoidPods.Builder.class);
    }

    public static final int PREFERAVOIDPODS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry> preferAvoidPods_;
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry>
        getPreferAvoidPodsList() {
      return preferAvoidPods_;
    }
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>
        getPreferAvoidPodsOrBuilderList() {
      return preferAvoidPods_;
    }
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    public int getPreferAvoidPodsCount() {
      return preferAvoidPods_.size();
    }
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getPreferAvoidPods(int index) {
      return preferAvoidPods_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Bounded-sized list of signatures of pods that should avoid this node, sorted
     * in timestamp order from oldest to newest. Size of the slice is unspecified.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
     */
    public io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder getPreferAvoidPodsOrBuilder(
        int index) {
      return preferAvoidPods_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < preferAvoidPods_.size(); i++) {
        output.writeMessage(1, preferAvoidPods_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < preferAvoidPods_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, preferAvoidPods_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AvoidPods)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AvoidPods other = (io.kubernetes.client.proto.V1.AvoidPods) obj;

      boolean result = true;
      result = result && getPreferAvoidPodsList().equals(other.getPreferAvoidPodsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPreferAvoidPodsCount() > 0) {
        hash = (37 * hash) + PREFERAVOIDPODS_FIELD_NUMBER;
        hash = (53 * hash) + getPreferAvoidPodsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AvoidPods parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.AvoidPods prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * AvoidPods describes pods that should avoid this node. This is the value for a
     * Node annotation with key scheduler.alpha.kubernetes.io/preferAvoidPods and
     * will eventually become a field of NodeStatus.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AvoidPods}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AvoidPods)
        io.kubernetes.client.proto.V1.AvoidPodsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AvoidPods_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AvoidPods_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AvoidPods.class,
                io.kubernetes.client.proto.V1.AvoidPods.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.AvoidPods.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPreferAvoidPodsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (preferAvoidPodsBuilder_ == null) {
          preferAvoidPods_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          preferAvoidPodsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AvoidPods_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AvoidPods getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AvoidPods.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AvoidPods build() {
        io.kubernetes.client.proto.V1.AvoidPods result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AvoidPods buildPartial() {
        io.kubernetes.client.proto.V1.AvoidPods result =
            new io.kubernetes.client.proto.V1.AvoidPods(this);
        int from_bitField0_ = bitField0_;
        if (preferAvoidPodsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            preferAvoidPods_ = java.util.Collections.unmodifiableList(preferAvoidPods_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.preferAvoidPods_ = preferAvoidPods_;
        } else {
          result.preferAvoidPods_ = preferAvoidPodsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AvoidPods) {
          return mergeFrom((io.kubernetes.client.proto.V1.AvoidPods) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.AvoidPods other) {
        if (other == io.kubernetes.client.proto.V1.AvoidPods.getDefaultInstance()) return this;
        if (preferAvoidPodsBuilder_ == null) {
          if (!other.preferAvoidPods_.isEmpty()) {
            if (preferAvoidPods_.isEmpty()) {
              preferAvoidPods_ = other.preferAvoidPods_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePreferAvoidPodsIsMutable();
              preferAvoidPods_.addAll(other.preferAvoidPods_);
            }
            onChanged();
          }
        } else {
          if (!other.preferAvoidPods_.isEmpty()) {
            if (preferAvoidPodsBuilder_.isEmpty()) {
              preferAvoidPodsBuilder_.dispose();
              preferAvoidPodsBuilder_ = null;
              preferAvoidPods_ = other.preferAvoidPods_;
              bitField0_ = (bitField0_ & ~0x00000001);
              preferAvoidPodsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPreferAvoidPodsFieldBuilder()
                      : null;
            } else {
              preferAvoidPodsBuilder_.addAllMessages(other.preferAvoidPods_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AvoidPods parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.AvoidPods) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry> preferAvoidPods_ =
          java.util.Collections.emptyList();

      private void ensurePreferAvoidPodsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          preferAvoidPods_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry>(
                  preferAvoidPods_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry,
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder,
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>
          preferAvoidPodsBuilder_;

      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry>
          getPreferAvoidPodsList() {
        if (preferAvoidPodsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(preferAvoidPods_);
        } else {
          return preferAvoidPodsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public int getPreferAvoidPodsCount() {
        if (preferAvoidPodsBuilder_ == null) {
          return preferAvoidPods_.size();
        } else {
          return preferAvoidPodsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getPreferAvoidPods(int index) {
        if (preferAvoidPodsBuilder_ == null) {
          return preferAvoidPods_.get(index);
        } else {
          return preferAvoidPodsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder setPreferAvoidPods(
          int index, io.kubernetes.client.proto.V1.PreferAvoidPodsEntry value) {
        if (preferAvoidPodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.set(index, value);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder setPreferAvoidPods(
          int index, io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder builderForValue) {
        if (preferAvoidPodsBuilder_ == null) {
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.set(index, builderForValue.build());
          onChanged();
        } else {
          preferAvoidPodsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder addPreferAvoidPods(io.kubernetes.client.proto.V1.PreferAvoidPodsEntry value) {
        if (preferAvoidPodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.add(value);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder addPreferAvoidPods(
          int index, io.kubernetes.client.proto.V1.PreferAvoidPodsEntry value) {
        if (preferAvoidPodsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.add(index, value);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder addPreferAvoidPods(
          io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder builderForValue) {
        if (preferAvoidPodsBuilder_ == null) {
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.add(builderForValue.build());
          onChanged();
        } else {
          preferAvoidPodsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder addPreferAvoidPods(
          int index, io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder builderForValue) {
        if (preferAvoidPodsBuilder_ == null) {
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.add(index, builderForValue.build());
          onChanged();
        } else {
          preferAvoidPodsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder addAllPreferAvoidPods(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PreferAvoidPodsEntry> values) {
        if (preferAvoidPodsBuilder_ == null) {
          ensurePreferAvoidPodsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, preferAvoidPods_);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder clearPreferAvoidPods() {
        if (preferAvoidPodsBuilder_ == null) {
          preferAvoidPods_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public Builder removePreferAvoidPods(int index) {
        if (preferAvoidPodsBuilder_ == null) {
          ensurePreferAvoidPodsIsMutable();
          preferAvoidPods_.remove(index);
          onChanged();
        } else {
          preferAvoidPodsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder getPreferAvoidPodsBuilder(
          int index) {
        return getPreferAvoidPodsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder
          getPreferAvoidPodsOrBuilder(int index) {
        if (preferAvoidPodsBuilder_ == null) {
          return preferAvoidPods_.get(index);
        } else {
          return preferAvoidPodsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>
          getPreferAvoidPodsOrBuilderList() {
        if (preferAvoidPodsBuilder_ != null) {
          return preferAvoidPodsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(preferAvoidPods_);
        }
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder
          addPreferAvoidPodsBuilder() {
        return getPreferAvoidPodsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder addPreferAvoidPodsBuilder(
          int index) {
        return getPreferAvoidPodsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Bounded-sized list of signatures of pods that should avoid this node, sorted
       * in timestamp order from oldest to newest. Size of the slice is unspecified.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PreferAvoidPodsEntry preferAvoidPods = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder>
          getPreferAvoidPodsBuilderList() {
        return getPreferAvoidPodsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry,
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder,
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>
          getPreferAvoidPodsFieldBuilder() {
        if (preferAvoidPodsBuilder_ == null) {
          preferAvoidPodsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PreferAvoidPodsEntry,
                  io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder,
                  io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder>(
                  preferAvoidPods_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          preferAvoidPods_ = null;
        }
        return preferAvoidPodsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AvoidPods)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AvoidPods)
    private static final io.kubernetes.client.proto.V1.AvoidPods DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AvoidPods();
    }

    public static io.kubernetes.client.proto.V1.AvoidPods getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AvoidPods> PARSER =
        new com.google.protobuf.AbstractParser<AvoidPods>() {
          @java.lang.Override
          public AvoidPods parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AvoidPods(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AvoidPods> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AvoidPods> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AvoidPods getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AzureDiskVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AzureDiskVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    boolean hasDiskName();
    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    java.lang.String getDiskName();
    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    com.google.protobuf.ByteString getDiskNameBytes();

    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    boolean hasDiskURI();
    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    java.lang.String getDiskURI();
    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    com.google.protobuf.ByteString getDiskURIBytes();

    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    boolean hasCachingMode();
    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    java.lang.String getCachingMode();
    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    com.google.protobuf.ByteString getCachingModeBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 5;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 5;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    boolean hasKind();
    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    java.lang.String getKind();
    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    com.google.protobuf.ByteString getKindBytes();
  }
  /**
   *
   *
   * <pre>
   * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AzureDiskVolumeSource}
   */
  public static final class AzureDiskVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AzureDiskVolumeSource)
      AzureDiskVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AzureDiskVolumeSource.newBuilder() to construct.
    private AzureDiskVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AzureDiskVolumeSource() {
      diskName_ = "";
      diskURI_ = "";
      cachingMode_ = "";
      fsType_ = "";
      readOnly_ = false;
      kind_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AzureDiskVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                diskName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                diskURI_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                cachingMode_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                fsType_ = bs;
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                readOnly_ = input.readBool();
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                kind_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.class,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int DISKNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object diskName_;
    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    public boolean hasDiskName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    public java.lang.String getDiskName() {
      java.lang.Object ref = diskName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          diskName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The Name of the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskName = 1;</code>
     */
    public com.google.protobuf.ByteString getDiskNameBytes() {
      java.lang.Object ref = diskName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        diskName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DISKURI_FIELD_NUMBER = 2;
    private volatile java.lang.Object diskURI_;
    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    public boolean hasDiskURI() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    public java.lang.String getDiskURI() {
      java.lang.Object ref = diskURI_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          diskURI_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The URI the data disk in the blob storage
     * </pre>
     *
     * <code>optional string diskURI = 2;</code>
     */
    public com.google.protobuf.ByteString getDiskURIBytes() {
      java.lang.Object ref = diskURI_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        diskURI_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CACHINGMODE_FIELD_NUMBER = 3;
    private volatile java.lang.Object cachingMode_;
    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    public boolean hasCachingMode() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    public java.lang.String getCachingMode() {
      java.lang.Object ref = cachingMode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cachingMode_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Host Caching mode: None, Read Only, Read Write.
     * +optional
     * </pre>
     *
     * <code>optional string cachingMode = 3;</code>
     */
    public com.google.protobuf.ByteString getCachingModeBytes() {
      java.lang.Object ref = cachingMode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        cachingMode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 4;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 5;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 5;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 5;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int KIND_FIELD_NUMBER = 6;
    private volatile java.lang.Object kind_;
    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
     * </pre>
     *
     * <code>optional string kind = 6;</code>
     */
    public com.google.protobuf.ByteString getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, diskName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, diskURI_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, cachingMode_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, fsType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(5, readOnly_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, kind_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, diskName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, diskURI_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, cachingMode_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, fsType_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, readOnly_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, kind_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AzureDiskVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AzureDiskVolumeSource other =
          (io.kubernetes.client.proto.V1.AzureDiskVolumeSource) obj;

      boolean result = true;
      result = result && (hasDiskName() == other.hasDiskName());
      if (hasDiskName()) {
        result = result && getDiskName().equals(other.getDiskName());
      }
      result = result && (hasDiskURI() == other.hasDiskURI());
      if (hasDiskURI()) {
        result = result && getDiskURI().equals(other.getDiskURI());
      }
      result = result && (hasCachingMode() == other.hasCachingMode());
      if (hasCachingMode()) {
        result = result && getCachingMode().equals(other.getCachingMode());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind().equals(other.getKind());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDiskName()) {
        hash = (37 * hash) + DISKNAME_FIELD_NUMBER;
        hash = (53 * hash) + getDiskName().hashCode();
      }
      if (hasDiskURI()) {
        hash = (37 * hash) + DISKURI_FIELD_NUMBER;
        hash = (53 * hash) + getDiskURI().hashCode();
      }
      if (hasCachingMode()) {
        hash = (37 * hash) + CACHINGMODE_FIELD_NUMBER;
        hash = (53 * hash) + getCachingMode().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.AzureDiskVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AzureDiskVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AzureDiskVolumeSource)
        io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.class,
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.AzureDiskVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        diskName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        diskURI_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        cachingMode_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000010);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.AzureDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.AzureDiskVolumeSource result =
            new io.kubernetes.client.proto.V1.AzureDiskVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.diskName_ = diskName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.diskURI_ = diskURI_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.cachingMode_ = cachingMode_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.kind_ = kind_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AzureDiskVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.AzureDiskVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.AzureDiskVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance())
          return this;
        if (other.hasDiskName()) {
          bitField0_ |= 0x00000001;
          diskName_ = other.diskName_;
          onChanged();
        }
        if (other.hasDiskURI()) {
          bitField0_ |= 0x00000002;
          diskURI_ = other.diskURI_;
          onChanged();
        }
        if (other.hasCachingMode()) {
          bitField0_ |= 0x00000004;
          cachingMode_ = other.cachingMode_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000008;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000020;
          kind_ = other.kind_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AzureDiskVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.AzureDiskVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object diskName_ = "";
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public boolean hasDiskName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public java.lang.String getDiskName() {
        java.lang.Object ref = diskName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            diskName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public com.google.protobuf.ByteString getDiskNameBytes() {
        java.lang.Object ref = diskName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          diskName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public Builder setDiskName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        diskName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public Builder clearDiskName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        diskName_ = getDefaultInstance().getDiskName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Name of the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskName = 1;</code>
       */
      public Builder setDiskNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        diskName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object diskURI_ = "";
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public boolean hasDiskURI() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public java.lang.String getDiskURI() {
        java.lang.Object ref = diskURI_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            diskURI_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public com.google.protobuf.ByteString getDiskURIBytes() {
        java.lang.Object ref = diskURI_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          diskURI_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public Builder setDiskURI(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        diskURI_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public Builder clearDiskURI() {
        bitField0_ = (bitField0_ & ~0x00000002);
        diskURI_ = getDefaultInstance().getDiskURI();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The URI the data disk in the blob storage
       * </pre>
       *
       * <code>optional string diskURI = 2;</code>
       */
      public Builder setDiskURIBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        diskURI_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object cachingMode_ = "";
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public boolean hasCachingMode() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public java.lang.String getCachingMode() {
        java.lang.Object ref = cachingMode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            cachingMode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public com.google.protobuf.ByteString getCachingModeBytes() {
        java.lang.Object ref = cachingMode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          cachingMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public Builder setCachingMode(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        cachingMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public Builder clearCachingMode() {
        bitField0_ = (bitField0_ & ~0x00000004);
        cachingMode_ = getDefaultInstance().getCachingMode();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Host Caching mode: None, Read Only, Read Write.
       * +optional
       * </pre>
       *
       * <code>optional string cachingMode = 3;</code>
       */
      public Builder setCachingModeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        cachingMode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 5;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 5;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 5;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000010;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 5;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public com.google.protobuf.ByteString getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public Builder setKind(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000020);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Expected values Shared: multiple blob disks per storage account  Dedicated: single blob disk per storage account  Managed: azure managed data disk (only in managed availability set). defaults to shared
       * </pre>
       *
       * <code>optional string kind = 6;</code>
       */
      public Builder setKindBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        kind_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AzureDiskVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AzureDiskVolumeSource)
    private static final io.kubernetes.client.proto.V1.AzureDiskVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AzureDiskVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.AzureDiskVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AzureDiskVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<AzureDiskVolumeSource>() {
          @java.lang.Override
          public AzureDiskVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AzureDiskVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AzureDiskVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AzureDiskVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AzureFilePersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AzureFilePersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    boolean hasSecretName();
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    java.lang.String getSecretName();
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    com.google.protobuf.ByteString getSecretNameBytes();

    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    boolean hasShareName();
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    java.lang.String getShareName();
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    com.google.protobuf.ByteString getShareNameBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    boolean hasSecretNamespace();
    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    java.lang.String getSecretNamespace();
    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    com.google.protobuf.ByteString getSecretNamespaceBytes();
  }
  /**
   *
   *
   * <pre>
   * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AzureFilePersistentVolumeSource}
   */
  public static final class AzureFilePersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AzureFilePersistentVolumeSource)
      AzureFilePersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AzureFilePersistentVolumeSource.newBuilder() to construct.
    private AzureFilePersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AzureFilePersistentVolumeSource() {
      secretName_ = "";
      shareName_ = "";
      readOnly_ = false;
      secretNamespace_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AzureFilePersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                secretName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                shareName_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                secretNamespace_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int SECRETNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object secretName_;
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public boolean hasSecretName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public java.lang.String getSecretName() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public com.google.protobuf.ByteString getSecretNameBytes() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHARENAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object shareName_;
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public boolean hasShareName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public java.lang.String getShareName() {
      java.lang.Object ref = shareName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shareName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public com.google.protobuf.ByteString getShareNameBytes() {
      java.lang.Object ref = shareName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        shareName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int SECRETNAMESPACE_FIELD_NUMBER = 4;
    private volatile java.lang.Object secretNamespace_;
    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    public boolean hasSecretNamespace() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    public java.lang.String getSecretNamespace() {
      java.lang.Object ref = secretNamespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretNamespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * the namespace of the secret that contains Azure Storage Account Name and Key
     * default is the same as the Pod
     * +optional
     * </pre>
     *
     * <code>optional string secretNamespace = 4;</code>
     */
    public com.google.protobuf.ByteString getSecretNamespaceBytes() {
      java.lang.Object ref = secretNamespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretNamespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, secretName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, shareName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, secretNamespace_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, secretName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, shareName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, secretNamespace_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasSecretName() == other.hasSecretName());
      if (hasSecretName()) {
        result = result && getSecretName().equals(other.getSecretName());
      }
      result = result && (hasShareName() == other.hasShareName());
      if (hasShareName()) {
        result = result && getShareName().equals(other.getShareName());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasSecretNamespace() == other.hasSecretNamespace());
      if (hasSecretNamespace()) {
        result = result && getSecretNamespace().equals(other.getSecretNamespace());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSecretName()) {
        hash = (37 * hash) + SECRETNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSecretName().hashCode();
      }
      if (hasShareName()) {
        hash = (37 * hash) + SHARENAME_FIELD_NUMBER;
        hash = (53 * hash) + getShareName().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasSecretNamespace()) {
        hash = (37 * hash) + SECRETNAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getSecretNamespace().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AzureFilePersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AzureFilePersistentVolumeSource)
        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        secretName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        shareName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        secretNamespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.secretName_ = secretName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.shareName_ = shareName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.secretNamespace_ = secretNamespace_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasSecretName()) {
          bitField0_ |= 0x00000001;
          secretName_ = other.secretName_;
          onChanged();
        }
        if (other.hasShareName()) {
          bitField0_ |= 0x00000002;
          shareName_ = other.shareName_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasSecretNamespace()) {
          bitField0_ |= 0x00000008;
          secretNamespace_ = other.secretNamespace_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object secretName_ = "";
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public boolean hasSecretName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public java.lang.String getSecretName() {
        java.lang.Object ref = secretName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public com.google.protobuf.ByteString getSecretNameBytes() {
        java.lang.Object ref = secretName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder clearSecretName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        secretName_ = getDefaultInstance().getSecretName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object shareName_ = "";
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public boolean hasShareName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public java.lang.String getShareName() {
        java.lang.Object ref = shareName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shareName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public com.google.protobuf.ByteString getShareNameBytes() {
        java.lang.Object ref = shareName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          shareName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder setShareName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        shareName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder clearShareName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        shareName_ = getDefaultInstance().getShareName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder setShareNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        shareName_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object secretNamespace_ = "";
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public boolean hasSecretNamespace() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public java.lang.String getSecretNamespace() {
        java.lang.Object ref = secretNamespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretNamespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public com.google.protobuf.ByteString getSecretNamespaceBytes() {
        java.lang.Object ref = secretNamespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretNamespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public Builder setSecretNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretNamespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public Builder clearSecretNamespace() {
        bitField0_ = (bitField0_ & ~0x00000008);
        secretNamespace_ = getDefaultInstance().getSecretNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the namespace of the secret that contains Azure Storage Account Name and Key
       * default is the same as the Pod
       * +optional
       * </pre>
       *
       * <code>optional string secretNamespace = 4;</code>
       */
      public Builder setSecretNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretNamespace_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AzureFilePersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AzureFilePersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AzureFilePersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<AzureFilePersistentVolumeSource>() {
          @java.lang.Override
          public AzureFilePersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AzureFilePersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AzureFilePersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AzureFilePersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface AzureFileVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.AzureFileVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    boolean hasSecretName();
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    java.lang.String getSecretName();
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    com.google.protobuf.ByteString getSecretNameBytes();

    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    boolean hasShareName();
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    java.lang.String getShareName();
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    com.google.protobuf.ByteString getShareNameBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.AzureFileVolumeSource}
   */
  public static final class AzureFileVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.AzureFileVolumeSource)
      AzureFileVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use AzureFileVolumeSource.newBuilder() to construct.
    private AzureFileVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private AzureFileVolumeSource() {
      secretName_ = "";
      shareName_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private AzureFileVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                secretName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                shareName_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.AzureFileVolumeSource.class,
              io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int SECRETNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object secretName_;
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public boolean hasSecretName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public java.lang.String getSecretName() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * the name of secret that contains Azure Storage Account Name and Key
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public com.google.protobuf.ByteString getSecretNameBytes() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SHARENAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object shareName_;
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public boolean hasShareName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public java.lang.String getShareName() {
      java.lang.Object ref = shareName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          shareName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Share Name
     * </pre>
     *
     * <code>optional string shareName = 2;</code>
     */
    public com.google.protobuf.ByteString getShareNameBytes() {
      java.lang.Object ref = shareName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        shareName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, secretName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, shareName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, secretName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, shareName_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.AzureFileVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.AzureFileVolumeSource other =
          (io.kubernetes.client.proto.V1.AzureFileVolumeSource) obj;

      boolean result = true;
      result = result && (hasSecretName() == other.hasSecretName());
      if (hasSecretName()) {
        result = result && getSecretName().equals(other.getSecretName());
      }
      result = result && (hasShareName() == other.hasShareName());
      if (hasShareName()) {
        result = result && getShareName().equals(other.getShareName());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSecretName()) {
        hash = (37 * hash) + SECRETNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSecretName().hashCode();
      }
      if (hasShareName()) {
        hash = (37 * hash) + SHARENAME_FIELD_NUMBER;
        hash = (53 * hash) + getShareName().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.AzureFileVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.AzureFileVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.AzureFileVolumeSource)
        io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.AzureFileVolumeSource.class,
                io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.AzureFileVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        secretName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        shareName_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource build() {
        io.kubernetes.client.proto.V1.AzureFileVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.AzureFileVolumeSource result =
            new io.kubernetes.client.proto.V1.AzureFileVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.secretName_ = secretName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.shareName_ = shareName_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.AzureFileVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.AzureFileVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.AzureFileVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance())
          return this;
        if (other.hasSecretName()) {
          bitField0_ |= 0x00000001;
          secretName_ = other.secretName_;
          onChanged();
        }
        if (other.hasShareName()) {
          bitField0_ |= 0x00000002;
          shareName_ = other.shareName_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.AzureFileVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.AzureFileVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object secretName_ = "";
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public boolean hasSecretName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public java.lang.String getSecretName() {
        java.lang.Object ref = secretName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public com.google.protobuf.ByteString getSecretNameBytes() {
        java.lang.Object ref = secretName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder clearSecretName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        secretName_ = getDefaultInstance().getSecretName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * the name of secret that contains Azure Storage Account Name and Key
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object shareName_ = "";
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public boolean hasShareName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public java.lang.String getShareName() {
        java.lang.Object ref = shareName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            shareName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public com.google.protobuf.ByteString getShareNameBytes() {
        java.lang.Object ref = shareName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          shareName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder setShareName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        shareName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder clearShareName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        shareName_ = getDefaultInstance().getShareName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Share Name
       * </pre>
       *
       * <code>optional string shareName = 2;</code>
       */
      public Builder setShareNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        shareName_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.AzureFileVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.AzureFileVolumeSource)
    private static final io.kubernetes.client.proto.V1.AzureFileVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.AzureFileVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.AzureFileVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<AzureFileVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<AzureFileVolumeSource>() {
          @java.lang.Override
          public AzureFileVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new AzureFileVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<AzureFileVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<AzureFileVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.AzureFileVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface BindingOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Binding)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    boolean hasTarget();
    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getTarget();
    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Binding ties one object to another; for example, a pod is bound to a node by a scheduler.
   * Deprecated in 1.7, please use the bindings subresource of pods instead.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Binding}
   */
  public static final class Binding extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Binding)
      BindingOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Binding.newBuilder() to construct.
    private Binding(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Binding() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Binding(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = target_.toBuilder();
                }
                target_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(target_);
                  target_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Binding_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Binding_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Binding.class,
              io.kubernetes.client.proto.V1.Binding.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int TARGET_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ObjectReference target_;
    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    public boolean hasTarget() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getTarget() {
      return target_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : target_;
    }
    /**
     *
     *
     * <pre>
     * The target object that you want to bind to the standard object.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetOrBuilder() {
      return target_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : target_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getTarget());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTarget());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Binding)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Binding other = (io.kubernetes.client.proto.V1.Binding) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasTarget() == other.hasTarget());
      if (hasTarget()) {
        result = result && getTarget().equals(other.getTarget());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasTarget()) {
        hash = (37 * hash) + TARGET_FIELD_NUMBER;
        hash = (53 * hash) + getTarget().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Binding parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Binding parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Binding parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Binding prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Binding ties one object to another; for example, a pod is bound to a node by a scheduler.
     * Deprecated in 1.7, please use the bindings subresource of pods instead.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Binding}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Binding)
        io.kubernetes.client.proto.V1.BindingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Binding_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Binding_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Binding.class,
                io.kubernetes.client.proto.V1.Binding.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Binding.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getTargetFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (targetBuilder_ == null) {
          target_ = null;
        } else {
          targetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Binding_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Binding getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Binding.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Binding build() {
        io.kubernetes.client.proto.V1.Binding result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Binding buildPartial() {
        io.kubernetes.client.proto.V1.Binding result =
            new io.kubernetes.client.proto.V1.Binding(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (targetBuilder_ == null) {
          result.target_ = target_;
        } else {
          result.target_ = targetBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Binding) {
          return mergeFrom((io.kubernetes.client.proto.V1.Binding) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Binding other) {
        if (other == io.kubernetes.client.proto.V1.Binding.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasTarget()) {
          mergeTarget(other.getTarget());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Binding parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Binding) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.ObjectReference target_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          targetBuilder_;
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public boolean hasTarget() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getTarget() {
        if (targetBuilder_ == null) {
          return target_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : target_;
        } else {
          return targetBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public Builder setTarget(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (targetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          target_ = value;
          onChanged();
        } else {
          targetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public Builder setTarget(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (targetBuilder_ == null) {
          target_ = builderForValue.build();
          onChanged();
        } else {
          targetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public Builder mergeTarget(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (targetBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && target_ != null
              && target_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            target_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(target_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            target_ = value;
          }
          onChanged();
        } else {
          targetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public Builder clearTarget() {
        if (targetBuilder_ == null) {
          target_ = null;
          onChanged();
        } else {
          targetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getTargetBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTargetFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetOrBuilder() {
        if (targetBuilder_ != null) {
          return targetBuilder_.getMessageOrBuilder();
        } else {
          return target_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : target_;
        }
      }
      /**
       *
       *
       * <pre>
       * The target object that you want to bind to the standard object.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference target = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getTargetFieldBuilder() {
        if (targetBuilder_ == null) {
          targetBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getTarget(), getParentForChildren(), isClean());
          target_ = null;
        }
        return targetBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Binding)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Binding)
    private static final io.kubernetes.client.proto.V1.Binding DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Binding();
    }

    public static io.kubernetes.client.proto.V1.Binding getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Binding> PARSER =
        new com.google.protobuf.AbstractParser<Binding>() {
          @java.lang.Override
          public Binding parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Binding(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Binding> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Binding> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Binding getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CSIPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.CSIPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    boolean hasDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    java.lang.String getDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    com.google.protobuf.ByteString getDriverBytes();

    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    boolean hasVolumeHandle();
    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    java.lang.String getVolumeHandle();
    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    com.google.protobuf.ByteString getVolumeHandleBytes();

    /**
     *
     *
     * <pre>
     * Optional: The value to pass to ControllerPublishVolumeRequest.
     * Defaults to false (read/write).
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: The value to pass to ControllerPublishVolumeRequest.
     * Defaults to false (read/write).
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    int getVolumeAttributesCount();
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    boolean containsVolumeAttributes(java.lang.String key);
    /** Use {@link #getVolumeAttributesMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getVolumeAttributes();
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getVolumeAttributesMap();
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    java.lang.String getVolumeAttributesOrDefault(
        java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    java.lang.String getVolumeAttributesOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    boolean hasControllerPublishSecretRef();
    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getControllerPublishSecretRef();
    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getControllerPublishSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    boolean hasNodeStageSecretRef();
    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getNodeStageSecretRef();
    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getNodeStageSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    boolean hasNodePublishSecretRef();
    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getNodePublishSecretRef();
    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getNodePublishSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents storage that is managed by an external CSI volume driver (Beta feature)
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.CSIPersistentVolumeSource}
   */
  public static final class CSIPersistentVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.CSIPersistentVolumeSource)
      CSIPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CSIPersistentVolumeSource.newBuilder() to construct.
    private CSIPersistentVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CSIPersistentVolumeSource() {
      driver_ = "";
      volumeHandle_ = "";
      readOnly_ = false;
      fsType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private CSIPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                driver_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                volumeHandle_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                fsType_ = bs;
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  volumeAttributes_ =
                      com.google.protobuf.MapField.newMapField(
                          VolumeAttributesDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000010;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String>
                    volumeAttributes__ =
                        input.readMessage(
                            VolumeAttributesDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                volumeAttributes_
                    .getMutableMap()
                    .put(volumeAttributes__.getKey(), volumeAttributes__.getValue());
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = controllerPublishSecretRef_.toBuilder();
                }
                controllerPublishSecretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(controllerPublishSecretRef_);
                  controllerPublishSecretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = nodeStageSecretRef_.toBuilder();
                }
                nodeStageSecretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nodeStageSecretRef_);
                  nodeStageSecretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 66:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = nodePublishSecretRef_.toBuilder();
                }
                nodePublishSecretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nodePublishSecretRef_);
                  nodePublishSecretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 5:
          return internalGetVolumeAttributes();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int DRIVER_FIELD_NUMBER = 1;
    private volatile java.lang.Object driver_;
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public boolean hasDriver() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public java.lang.String getDriver() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          driver_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * Required.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public com.google.protobuf.ByteString getDriverBytes() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        driver_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMEHANDLE_FIELD_NUMBER = 2;
    private volatile java.lang.Object volumeHandle_;
    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    public boolean hasVolumeHandle() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    public java.lang.String getVolumeHandle() {
      java.lang.Object ref = volumeHandle_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeHandle_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeHandle is the unique volume name returned by the CSI volume
     * plugin’s CreateVolume to refer to the volume on all subsequent calls.
     * Required.
     * </pre>
     *
     * <code>optional string volumeHandle = 2;</code>
     */
    public com.google.protobuf.ByteString getVolumeHandleBytes() {
      java.lang.Object ref = volumeHandle_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeHandle_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: The value to pass to ControllerPublishVolumeRequest.
     * Defaults to false (read/write).
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: The value to pass to ControllerPublishVolumeRequest.
     * Defaults to false (read/write).
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int FSTYPE_FIELD_NUMBER = 4;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 4;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMEATTRIBUTES_FIELD_NUMBER = 5;

    private static final class VolumeAttributesDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> volumeAttributes_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
        internalGetVolumeAttributes() {
      if (volumeAttributes_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            VolumeAttributesDefaultEntryHolder.defaultEntry);
      }
      return volumeAttributes_;
    }

    public int getVolumeAttributesCount() {
      return internalGetVolumeAttributes().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    public boolean containsVolumeAttributes(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetVolumeAttributes().getMap().containsKey(key);
    }
    /** Use {@link #getVolumeAttributesMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getVolumeAttributes() {
      return getVolumeAttributesMap();
    }
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getVolumeAttributesMap() {
      return internalGetVolumeAttributes().getMap();
    }
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    public java.lang.String getVolumeAttributesOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetVolumeAttributes().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Attributes of the volume to publish.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
     */
    public java.lang.String getVolumeAttributesOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map =
          internalGetVolumeAttributes().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CONTROLLERPUBLISHSECRETREF_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1.SecretReference controllerPublishSecretRef_;
    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    public boolean hasControllerPublishSecretRef() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getControllerPublishSecretRef() {
      return controllerPublishSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : controllerPublishSecretRef_;
    }
    /**
     *
     *
     * <pre>
     * ControllerPublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * ControllerPublishVolume and ControllerUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder
        getControllerPublishSecretRefOrBuilder() {
      return controllerPublishSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : controllerPublishSecretRef_;
    }

    public static final int NODESTAGESECRETREF_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.SecretReference nodeStageSecretRef_;
    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    public boolean hasNodeStageSecretRef() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getNodeStageSecretRef() {
      return nodeStageSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : nodeStageSecretRef_;
    }
    /**
     *
     *
     * <pre>
     * NodeStageSecretRef is a reference to the secret object containing sensitive
     * information to pass to the CSI driver to complete the CSI NodeStageVolume
     * and NodeStageVolume and NodeUnstageVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getNodeStageSecretRefOrBuilder() {
      return nodeStageSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : nodeStageSecretRef_;
    }

    public static final int NODEPUBLISHSECRETREF_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.V1.SecretReference nodePublishSecretRef_;
    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    public boolean hasNodePublishSecretRef() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getNodePublishSecretRef() {
      return nodePublishSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : nodePublishSecretRef_;
    }
    /**
     *
     *
     * <pre>
     * NodePublishSecretRef is a reference to the secret object containing
     * sensitive information to pass to the CSI driver to complete the CSI
     * NodePublishVolume and NodeUnpublishVolume calls.
     * This field is optional, and may be empty if no secret is required. If the
     * secret object contains more than one secret, all secrets are passed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder
        getNodePublishSecretRefOrBuilder() {
      return nodePublishSecretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : nodePublishSecretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, volumeHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, fsType_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output,
          internalGetVolumeAttributes(),
          VolumeAttributesDefaultEntryHolder.defaultEntry,
          5);
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(6, getControllerPublishSecretRef());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getNodeStageSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(8, getNodePublishSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, volumeHandle_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, fsType_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetVolumeAttributes().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> volumeAttributes__ =
            VolumeAttributesDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, volumeAttributes__);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                6, getControllerPublishSecretRef());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(7, getNodeStageSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(8, getNodePublishSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.CSIPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.CSIPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.CSIPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasDriver() == other.hasDriver());
      if (hasDriver()) {
        result = result && getDriver().equals(other.getDriver());
      }
      result = result && (hasVolumeHandle() == other.hasVolumeHandle());
      if (hasVolumeHandle()) {
        result = result && getVolumeHandle().equals(other.getVolumeHandle());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && internalGetVolumeAttributes().equals(other.internalGetVolumeAttributes());
      result = result && (hasControllerPublishSecretRef() == other.hasControllerPublishSecretRef());
      if (hasControllerPublishSecretRef()) {
        result =
            result && getControllerPublishSecretRef().equals(other.getControllerPublishSecretRef());
      }
      result = result && (hasNodeStageSecretRef() == other.hasNodeStageSecretRef());
      if (hasNodeStageSecretRef()) {
        result = result && getNodeStageSecretRef().equals(other.getNodeStageSecretRef());
      }
      result = result && (hasNodePublishSecretRef() == other.hasNodePublishSecretRef());
      if (hasNodePublishSecretRef()) {
        result = result && getNodePublishSecretRef().equals(other.getNodePublishSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDriver()) {
        hash = (37 * hash) + DRIVER_FIELD_NUMBER;
        hash = (53 * hash) + getDriver().hashCode();
      }
      if (hasVolumeHandle()) {
        hash = (37 * hash) + VOLUMEHANDLE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeHandle().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (!internalGetVolumeAttributes().getMap().isEmpty()) {
        hash = (37 * hash) + VOLUMEATTRIBUTES_FIELD_NUMBER;
        hash = (53 * hash) + internalGetVolumeAttributes().hashCode();
      }
      if (hasControllerPublishSecretRef()) {
        hash = (37 * hash) + CONTROLLERPUBLISHSECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getControllerPublishSecretRef().hashCode();
      }
      if (hasNodeStageSecretRef()) {
        hash = (37 * hash) + NODESTAGESECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getNodeStageSecretRef().hashCode();
      }
      if (hasNodePublishSecretRef()) {
        hash = (37 * hash) + NODEPUBLISHSECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getNodePublishSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.CSIPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents storage that is managed by an external CSI volume driver (Beta feature)
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.CSIPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.CSIPersistentVolumeSource)
        io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 5:
            return internalGetVolumeAttributes();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 5:
            return internalGetMutableVolumeAttributes();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getControllerPublishSecretRefFieldBuilder();
          getNodeStageSecretRefFieldBuilder();
          getNodePublishSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        driver_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeHandle_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableVolumeAttributes().clear();
        if (controllerPublishSecretRefBuilder_ == null) {
          controllerPublishSecretRef_ = null;
        } else {
          controllerPublishSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (nodeStageSecretRefBuilder_ == null) {
          nodeStageSecretRef_ = null;
        } else {
          nodeStageSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (nodePublishSecretRefBuilder_ == null) {
          nodePublishSecretRef_ = null;
        } else {
          nodePublishSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.CSIPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.CSIPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.CSIPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.driver_ = driver_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeHandle_ = volumeHandle_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.fsType_ = fsType_;
        result.volumeAttributes_ = internalGetVolumeAttributes();
        result.volumeAttributes_.makeImmutable();
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        if (controllerPublishSecretRefBuilder_ == null) {
          result.controllerPublishSecretRef_ = controllerPublishSecretRef_;
        } else {
          result.controllerPublishSecretRef_ = controllerPublishSecretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        if (nodeStageSecretRefBuilder_ == null) {
          result.nodeStageSecretRef_ = nodeStageSecretRef_;
        } else {
          result.nodeStageSecretRef_ = nodeStageSecretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        if (nodePublishSecretRefBuilder_ == null) {
          result.nodePublishSecretRef_ = nodePublishSecretRef_;
        } else {
          result.nodePublishSecretRef_ = nodePublishSecretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.CSIPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.CSIPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.CSIPersistentVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasDriver()) {
          bitField0_ |= 0x00000001;
          driver_ = other.driver_;
          onChanged();
        }
        if (other.hasVolumeHandle()) {
          bitField0_ |= 0x00000002;
          volumeHandle_ = other.volumeHandle_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000008;
          fsType_ = other.fsType_;
          onChanged();
        }
        internalGetMutableVolumeAttributes().mergeFrom(other.internalGetVolumeAttributes());
        if (other.hasControllerPublishSecretRef()) {
          mergeControllerPublishSecretRef(other.getControllerPublishSecretRef());
        }
        if (other.hasNodeStageSecretRef()) {
          mergeNodeStageSecretRef(other.getNodeStageSecretRef());
        }
        if (other.hasNodePublishSecretRef()) {
          mergeNodePublishSecretRef(other.getNodePublishSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.CSIPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.CSIPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object driver_ = "";
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public boolean hasDriver() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public java.lang.String getDriver() {
        java.lang.Object ref = driver_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            driver_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public com.google.protobuf.ByteString getDriverBytes() {
        java.lang.Object ref = driver_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          driver_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriver(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder clearDriver() {
        bitField0_ = (bitField0_ & ~0x00000001);
        driver_ = getDefaultInstance().getDriver();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * Required.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriverBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeHandle_ = "";
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public boolean hasVolumeHandle() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public java.lang.String getVolumeHandle() {
        java.lang.Object ref = volumeHandle_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeHandle_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public com.google.protobuf.ByteString getVolumeHandleBytes() {
        java.lang.Object ref = volumeHandle_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeHandle_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public Builder setVolumeHandle(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeHandle_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public Builder clearVolumeHandle() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeHandle_ = getDefaultInstance().getVolumeHandle();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeHandle is the unique volume name returned by the CSI volume
       * plugin’s CreateVolume to refer to the volume on all subsequent calls.
       * Required.
       * </pre>
       *
       * <code>optional string volumeHandle = 2;</code>
       */
      public Builder setVolumeHandleBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeHandle_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: The value to pass to ControllerPublishVolumeRequest.
       * Defaults to false (read/write).
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: The value to pass to ControllerPublishVolumeRequest.
       * Defaults to false (read/write).
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: The value to pass to ControllerPublishVolumeRequest.
       * Defaults to false (read/write).
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: The value to pass to ControllerPublishVolumeRequest.
       * Defaults to false (read/write).
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 4;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        fsType_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> volumeAttributes_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetVolumeAttributes() {
        if (volumeAttributes_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              VolumeAttributesDefaultEntryHolder.defaultEntry);
        }
        return volumeAttributes_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableVolumeAttributes() {
        onChanged();
        ;
        if (volumeAttributes_ == null) {
          volumeAttributes_ =
              com.google.protobuf.MapField.newMapField(
                  VolumeAttributesDefaultEntryHolder.defaultEntry);
        }
        if (!volumeAttributes_.isMutable()) {
          volumeAttributes_ = volumeAttributes_.copy();
        }
        return volumeAttributes_;
      }

      public int getVolumeAttributesCount() {
        return internalGetVolumeAttributes().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public boolean containsVolumeAttributes(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetVolumeAttributes().getMap().containsKey(key);
      }
      /** Use {@link #getVolumeAttributesMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getVolumeAttributes() {
        return getVolumeAttributesMap();
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getVolumeAttributesMap() {
        return internalGetVolumeAttributes().getMap();
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public java.lang.String getVolumeAttributesOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetVolumeAttributes().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public java.lang.String getVolumeAttributesOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map =
            internalGetVolumeAttributes().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearVolumeAttributes() {
        internalGetMutableVolumeAttributes().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public Builder removeVolumeAttributes(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableVolumeAttributes().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableVolumeAttributes() {
        return internalGetMutableVolumeAttributes().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public Builder putVolumeAttributes(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableVolumeAttributes().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Attributes of the volume to publish.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; volumeAttributes = 5;</code>
       */
      public Builder putAllVolumeAttributes(
          java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableVolumeAttributes().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference controllerPublishSecretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          controllerPublishSecretRefBuilder_;
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public boolean hasControllerPublishSecretRef() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getControllerPublishSecretRef() {
        if (controllerPublishSecretRefBuilder_ == null) {
          return controllerPublishSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : controllerPublishSecretRef_;
        } else {
          return controllerPublishSecretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public Builder setControllerPublishSecretRef(
          io.kubernetes.client.proto.V1.SecretReference value) {
        if (controllerPublishSecretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          controllerPublishSecretRef_ = value;
          onChanged();
        } else {
          controllerPublishSecretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public Builder setControllerPublishSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (controllerPublishSecretRefBuilder_ == null) {
          controllerPublishSecretRef_ = builderForValue.build();
          onChanged();
        } else {
          controllerPublishSecretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public Builder mergeControllerPublishSecretRef(
          io.kubernetes.client.proto.V1.SecretReference value) {
        if (controllerPublishSecretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && controllerPublishSecretRef_ != null
              && controllerPublishSecretRef_
                  != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            controllerPublishSecretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(
                        controllerPublishSecretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            controllerPublishSecretRef_ = value;
          }
          onChanged();
        } else {
          controllerPublishSecretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public Builder clearControllerPublishSecretRef() {
        if (controllerPublishSecretRefBuilder_ == null) {
          controllerPublishSecretRef_ = null;
          onChanged();
        } else {
          controllerPublishSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder
          getControllerPublishSecretRefBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getControllerPublishSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder
          getControllerPublishSecretRefOrBuilder() {
        if (controllerPublishSecretRefBuilder_ != null) {
          return controllerPublishSecretRefBuilder_.getMessageOrBuilder();
        } else {
          return controllerPublishSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : controllerPublishSecretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * ControllerPublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * ControllerPublishVolume and ControllerUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference controllerPublishSecretRef = 6;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getControllerPublishSecretRefFieldBuilder() {
        if (controllerPublishSecretRefBuilder_ == null) {
          controllerPublishSecretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getControllerPublishSecretRef(), getParentForChildren(), isClean());
          controllerPublishSecretRef_ = null;
        }
        return controllerPublishSecretRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.SecretReference nodeStageSecretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          nodeStageSecretRefBuilder_;
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public boolean hasNodeStageSecretRef() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getNodeStageSecretRef() {
        if (nodeStageSecretRefBuilder_ == null) {
          return nodeStageSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : nodeStageSecretRef_;
        } else {
          return nodeStageSecretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public Builder setNodeStageSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (nodeStageSecretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nodeStageSecretRef_ = value;
          onChanged();
        } else {
          nodeStageSecretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public Builder setNodeStageSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (nodeStageSecretRefBuilder_ == null) {
          nodeStageSecretRef_ = builderForValue.build();
          onChanged();
        } else {
          nodeStageSecretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public Builder mergeNodeStageSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (nodeStageSecretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && nodeStageSecretRef_ != null
              && nodeStageSecretRef_
                  != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            nodeStageSecretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(nodeStageSecretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nodeStageSecretRef_ = value;
          }
          onChanged();
        } else {
          nodeStageSecretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public Builder clearNodeStageSecretRef() {
        if (nodeStageSecretRefBuilder_ == null) {
          nodeStageSecretRef_ = null;
          onChanged();
        } else {
          nodeStageSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getNodeStageSecretRefBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getNodeStageSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder
          getNodeStageSecretRefOrBuilder() {
        if (nodeStageSecretRefBuilder_ != null) {
          return nodeStageSecretRefBuilder_.getMessageOrBuilder();
        } else {
          return nodeStageSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : nodeStageSecretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * NodeStageSecretRef is a reference to the secret object containing sensitive
       * information to pass to the CSI driver to complete the CSI NodeStageVolume
       * and NodeStageVolume and NodeUnstageVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodeStageSecretRef = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getNodeStageSecretRefFieldBuilder() {
        if (nodeStageSecretRefBuilder_ == null) {
          nodeStageSecretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getNodeStageSecretRef(), getParentForChildren(), isClean());
          nodeStageSecretRef_ = null;
        }
        return nodeStageSecretRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.SecretReference nodePublishSecretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          nodePublishSecretRefBuilder_;
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public boolean hasNodePublishSecretRef() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getNodePublishSecretRef() {
        if (nodePublishSecretRefBuilder_ == null) {
          return nodePublishSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : nodePublishSecretRef_;
        } else {
          return nodePublishSecretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public Builder setNodePublishSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (nodePublishSecretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nodePublishSecretRef_ = value;
          onChanged();
        } else {
          nodePublishSecretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public Builder setNodePublishSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (nodePublishSecretRefBuilder_ == null) {
          nodePublishSecretRef_ = builderForValue.build();
          onChanged();
        } else {
          nodePublishSecretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public Builder mergeNodePublishSecretRef(
          io.kubernetes.client.proto.V1.SecretReference value) {
        if (nodePublishSecretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && nodePublishSecretRef_ != null
              && nodePublishSecretRef_
                  != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            nodePublishSecretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(nodePublishSecretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nodePublishSecretRef_ = value;
          }
          onChanged();
        } else {
          nodePublishSecretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public Builder clearNodePublishSecretRef() {
        if (nodePublishSecretRefBuilder_ == null) {
          nodePublishSecretRef_ = null;
          onChanged();
        } else {
          nodePublishSecretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder
          getNodePublishSecretRefBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getNodePublishSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder
          getNodePublishSecretRefOrBuilder() {
        if (nodePublishSecretRefBuilder_ != null) {
          return nodePublishSecretRefBuilder_.getMessageOrBuilder();
        } else {
          return nodePublishSecretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : nodePublishSecretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * NodePublishSecretRef is a reference to the secret object containing
       * sensitive information to pass to the CSI driver to complete the CSI
       * NodePublishVolume and NodeUnpublishVolume calls.
       * This field is optional, and may be empty if no secret is required. If the
       * secret object contains more than one secret, all secrets are passed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference nodePublishSecretRef = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getNodePublishSecretRefFieldBuilder() {
        if (nodePublishSecretRefBuilder_ == null) {
          nodePublishSecretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getNodePublishSecretRef(), getParentForChildren(), isClean());
          nodePublishSecretRef_ = null;
        }
        return nodePublishSecretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.CSIPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.CSIPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.CSIPersistentVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.CSIPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<CSIPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<CSIPersistentVolumeSource>() {
          @java.lang.Override
          public CSIPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CSIPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<CSIPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CSIPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CapabilitiesOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Capabilities)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    java.util.List<java.lang.String> getAddList();
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    int getAddCount();
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    java.lang.String getAdd(int index);
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    com.google.protobuf.ByteString getAddBytes(int index);

    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    java.util.List<java.lang.String> getDropList();
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    int getDropCount();
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    java.lang.String getDrop(int index);
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    com.google.protobuf.ByteString getDropBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * Adds and removes POSIX capabilities from running containers.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Capabilities}
   */
  public static final class Capabilities extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Capabilities)
      CapabilitiesOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Capabilities.newBuilder() to construct.
    private Capabilities(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Capabilities() {
      add_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      drop_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Capabilities(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  add_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                add_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  drop_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                drop_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          add_ = add_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          drop_ = drop_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_Capabilities_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Capabilities_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Capabilities.class,
              io.kubernetes.client.proto.V1.Capabilities.Builder.class);
    }

    public static final int ADD_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList add_;
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getAddList() {
      return add_;
    }
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    public int getAddCount() {
      return add_.size();
    }
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    public java.lang.String getAdd(int index) {
      return add_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Added capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string add = 1;</code>
     */
    public com.google.protobuf.ByteString getAddBytes(int index) {
      return add_.getByteString(index);
    }

    public static final int DROP_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList drop_;
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getDropList() {
      return drop_;
    }
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    public int getDropCount() {
      return drop_.size();
    }
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    public java.lang.String getDrop(int index) {
      return drop_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Removed capabilities
     * +optional
     * </pre>
     *
     * <code>repeated string drop = 2;</code>
     */
    public com.google.protobuf.ByteString getDropBytes(int index) {
      return drop_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < add_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, add_.getRaw(i));
      }
      for (int i = 0; i < drop_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, drop_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < add_.size(); i++) {
          dataSize += computeStringSizeNoTag(add_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getAddList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < drop_.size(); i++) {
          dataSize += computeStringSizeNoTag(drop_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getDropList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Capabilities)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Capabilities other =
          (io.kubernetes.client.proto.V1.Capabilities) obj;

      boolean result = true;
      result = result && getAddList().equals(other.getAddList());
      result = result && getDropList().equals(other.getDropList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getAddCount() > 0) {
        hash = (37 * hash) + ADD_FIELD_NUMBER;
        hash = (53 * hash) + getAddList().hashCode();
      }
      if (getDropCount() > 0) {
        hash = (37 * hash) + DROP_FIELD_NUMBER;
        hash = (53 * hash) + getDropList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Capabilities parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Capabilities prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Adds and removes POSIX capabilities from running containers.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Capabilities}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Capabilities)
        io.kubernetes.client.proto.V1.CapabilitiesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Capabilities_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Capabilities_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Capabilities.class,
                io.kubernetes.client.proto.V1.Capabilities.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Capabilities.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        add_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        drop_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Capabilities_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Capabilities getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Capabilities build() {
        io.kubernetes.client.proto.V1.Capabilities result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Capabilities buildPartial() {
        io.kubernetes.client.proto.V1.Capabilities result =
            new io.kubernetes.client.proto.V1.Capabilities(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          add_ = add_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.add_ = add_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          drop_ = drop_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.drop_ = drop_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Capabilities) {
          return mergeFrom((io.kubernetes.client.proto.V1.Capabilities) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Capabilities other) {
        if (other == io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()) return this;
        if (!other.add_.isEmpty()) {
          if (add_.isEmpty()) {
            add_ = other.add_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureAddIsMutable();
            add_.addAll(other.add_);
          }
          onChanged();
        }
        if (!other.drop_.isEmpty()) {
          if (drop_.isEmpty()) {
            drop_ = other.drop_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureDropIsMutable();
            drop_.addAll(other.drop_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Capabilities parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Capabilities) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList add_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureAddIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          add_ = new com.google.protobuf.LazyStringArrayList(add_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getAddList() {
        return add_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public int getAddCount() {
        return add_.size();
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public java.lang.String getAdd(int index) {
        return add_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public com.google.protobuf.ByteString getAddBytes(int index) {
        return add_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public Builder setAdd(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAddIsMutable();
        add_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public Builder addAdd(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAddIsMutable();
        add_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public Builder addAllAdd(java.lang.Iterable<java.lang.String> values) {
        ensureAddIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, add_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public Builder clearAdd() {
        add_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Added capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string add = 1;</code>
       */
      public Builder addAddBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAddIsMutable();
        add_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList drop_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureDropIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          drop_ = new com.google.protobuf.LazyStringArrayList(drop_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getDropList() {
        return drop_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public int getDropCount() {
        return drop_.size();
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public java.lang.String getDrop(int index) {
        return drop_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public com.google.protobuf.ByteString getDropBytes(int index) {
        return drop_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public Builder setDrop(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDropIsMutable();
        drop_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public Builder addDrop(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDropIsMutable();
        drop_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public Builder addAllDrop(java.lang.Iterable<java.lang.String> values) {
        ensureDropIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, drop_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public Builder clearDrop() {
        drop_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Removed capabilities
       * +optional
       * </pre>
       *
       * <code>repeated string drop = 2;</code>
       */
      public Builder addDropBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureDropIsMutable();
        drop_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Capabilities)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Capabilities)
    private static final io.kubernetes.client.proto.V1.Capabilities DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Capabilities();
    }

    public static io.kubernetes.client.proto.V1.Capabilities getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Capabilities> PARSER =
        new com.google.protobuf.AbstractParser<Capabilities>() {
          @java.lang.Override
          public Capabilities parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Capabilities(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Capabilities> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Capabilities> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Capabilities getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CephFSPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.CephFSPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.util.List<java.lang.String> getMonitorsList();
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    int getMonitorsCount();
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.lang.String getMonitors(int index);
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    com.google.protobuf.ByteString getMonitorsBytes(int index);

    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    boolean hasSecretFile();
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    java.lang.String getSecretFile();
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    com.google.protobuf.ByteString getSecretFileBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Ceph Filesystem mount that lasts the lifetime of a pod
   * Cephfs volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.CephFSPersistentVolumeSource}
   */
  public static final class CephFSPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.CephFSPersistentVolumeSource)
      CephFSPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CephFSPersistentVolumeSource.newBuilder() to construct.
    private CephFSPersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CephFSPersistentVolumeSource() {
      monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      path_ = "";
      user_ = "";
      secretFile_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private CephFSPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  monitors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                monitors_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                user_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                secretFile_ = bs;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000010;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int MONITORS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList monitors_;
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getMonitorsList() {
      return monitors_;
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public int getMonitorsCount() {
      return monitors_.size();
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public java.lang.String getMonitors(int index) {
      return monitors_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ByteString getMonitorsBytes(int index) {
      return monitors_.getByteString(index);
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USER_FIELD_NUMBER = 3;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETFILE_FIELD_NUMBER = 4;
    private volatile java.lang.Object secretFile_;
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public boolean hasSecretFile() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public java.lang.String getSecretFile() {
      java.lang.Object ref = secretFile_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretFile_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public com.google.protobuf.ByteString getSecretFileBytes() {
      java.lang.Object ref = secretFile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretFile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 6;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < monitors_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, monitors_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, user_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, secretFile_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, getSecretRef());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(6, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < monitors_.size(); i++) {
          dataSize += computeStringSizeNoTag(monitors_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMonitorsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, user_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, secretFile_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSecretRef());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource) obj;

      boolean result = true;
      result = result && getMonitorsList().equals(other.getMonitorsList());
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasSecretFile() == other.hasSecretFile());
      if (hasSecretFile()) {
        result = result && getSecretFile().equals(other.getSecretFile());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMonitorsCount() > 0) {
        hash = (37 * hash) + MONITORS_FIELD_NUMBER;
        hash = (53 * hash) + getMonitorsList().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasSecretFile()) {
        hash = (37 * hash) + SECRETFILE_FIELD_NUMBER;
        hash = (53 * hash) + getSecretFile().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Ceph Filesystem mount that lasts the lifetime of a pod
     * Cephfs volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.CephFSPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.CephFSPersistentVolumeSource)
        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        secretFile_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.monitors_ = monitors_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.secretFile_ = secretFile_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance())
          return this;
        if (!other.monitors_.isEmpty()) {
          if (monitors_.isEmpty()) {
            monitors_ = other.monitors_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMonitorsIsMutable();
            monitors_.addAll(other.monitors_);
          }
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000004;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasSecretFile()) {
          bitField0_ |= 0x00000008;
          secretFile_ = other.secretFile_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList monitors_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureMonitorsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = new com.google.protobuf.LazyStringArrayList(monitors_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getMonitorsList() {
        return monitors_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public int getMonitorsCount() {
        return monitors_.size();
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public java.lang.String getMonitors(int index) {
        return monitors_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ByteString getMonitorsBytes(int index) {
        return monitors_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder setMonitors(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitors(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addAllMonitors(java.lang.Iterable<java.lang.String> values) {
        ensureMonitorsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, monitors_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder clearMonitors() {
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitorsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000004);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object secretFile_ = "";
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public boolean hasSecretFile() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public java.lang.String getSecretFile() {
        java.lang.Object ref = secretFile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretFile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public com.google.protobuf.ByteString getSecretFileBytes() {
        java.lang.Object ref = secretFile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretFile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder setSecretFile(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretFile_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder clearSecretFile() {
        bitField0_ = (bitField0_ & ~0x00000008);
        secretFile_ = getDefaultInstance().getSecretFile();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder setSecretFileBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretFile_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000020;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.CephFSPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.CephFSPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<CephFSPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<CephFSPersistentVolumeSource>() {
          @java.lang.Override
          public CephFSPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CephFSPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<CephFSPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CephFSPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CephFSVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.CephFSVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.util.List<java.lang.String> getMonitorsList();
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    int getMonitorsCount();
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.lang.String getMonitors(int index);
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    com.google.protobuf.ByteString getMonitorsBytes(int index);

    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    boolean hasSecretFile();
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    java.lang.String getSecretFile();
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    com.google.protobuf.ByteString getSecretFileBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Ceph Filesystem mount that lasts the lifetime of a pod
   * Cephfs volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.CephFSVolumeSource}
   */
  public static final class CephFSVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.CephFSVolumeSource)
      CephFSVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CephFSVolumeSource.newBuilder() to construct.
    private CephFSVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CephFSVolumeSource() {
      monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      path_ = "";
      user_ = "";
      secretFile_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private CephFSVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  monitors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                monitors_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                user_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                secretFile_ = bs;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000010;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_CephFSVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.CephFSVolumeSource.class,
              io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int MONITORS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList monitors_;
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getMonitorsList() {
      return monitors_;
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public int getMonitorsCount() {
      return monitors_.size();
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public java.lang.String getMonitors(int index) {
      return monitors_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Required: Monitors is a collection of Ceph monitors
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ByteString getMonitorsBytes(int index) {
      return monitors_.getByteString(index);
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
     * +optional
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USER_FIELD_NUMBER = 3;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: User is the rados user name, default is admin
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 3;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETFILE_FIELD_NUMBER = 4;
    private volatile java.lang.Object secretFile_;
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public boolean hasSecretFile() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public java.lang.String getSecretFile() {
      java.lang.Object ref = secretFile_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretFile_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string secretFile = 4;</code>
     */
    public com.google.protobuf.ByteString getSecretFileBytes() {
      java.lang.Object ref = secretFile_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretFile_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the authentication secret for User, default is empty.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 6;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < monitors_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, monitors_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, user_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, secretFile_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(5, getSecretRef());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBool(6, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < monitors_.size(); i++) {
          dataSize += computeStringSizeNoTag(monitors_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMonitorsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, user_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, secretFile_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSecretRef());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.CephFSVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.CephFSVolumeSource other =
          (io.kubernetes.client.proto.V1.CephFSVolumeSource) obj;

      boolean result = true;
      result = result && getMonitorsList().equals(other.getMonitorsList());
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasSecretFile() == other.hasSecretFile());
      if (hasSecretFile()) {
        result = result && getSecretFile().equals(other.getSecretFile());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMonitorsCount() > 0) {
        hash = (37 * hash) + MONITORS_FIELD_NUMBER;
        hash = (53 * hash) + getMonitorsList().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasSecretFile()) {
        hash = (37 * hash) + SECRETFILE_FIELD_NUMBER;
        hash = (53 * hash) + getSecretFile().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.CephFSVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Ceph Filesystem mount that lasts the lifetime of a pod
     * Cephfs volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.CephFSVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.CephFSVolumeSource)
        io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_CephFSVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.CephFSVolumeSource.class,
                io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.CephFSVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        secretFile_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSVolumeSource build() {
        io.kubernetes.client.proto.V1.CephFSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CephFSVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.CephFSVolumeSource result =
            new io.kubernetes.client.proto.V1.CephFSVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.monitors_ = monitors_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.secretFile_ = secretFile_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.CephFSVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.CephFSVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.CephFSVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance())
          return this;
        if (!other.monitors_.isEmpty()) {
          if (monitors_.isEmpty()) {
            monitors_ = other.monitors_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMonitorsIsMutable();
            monitors_.addAll(other.monitors_);
          }
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000004;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasSecretFile()) {
          bitField0_ |= 0x00000008;
          secretFile_ = other.secretFile_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.CephFSVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.CephFSVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList monitors_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureMonitorsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = new com.google.protobuf.LazyStringArrayList(monitors_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getMonitorsList() {
        return monitors_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public int getMonitorsCount() {
        return monitors_.size();
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public java.lang.String getMonitors(int index) {
        return monitors_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ByteString getMonitorsBytes(int index) {
        return monitors_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder setMonitors(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitors(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addAllMonitors(java.lang.Iterable<java.lang.String> values) {
        ensureMonitorsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, monitors_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder clearMonitors() {
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Monitors is a collection of Ceph monitors
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitorsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Used as the mounted root, rather than the full Ceph tree, default is /
       * +optional
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000004);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: User is the rados user name, default is admin
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 3;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object secretFile_ = "";
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public boolean hasSecretFile() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public java.lang.String getSecretFile() {
        java.lang.Object ref = secretFile_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretFile_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public com.google.protobuf.ByteString getSecretFileBytes() {
        java.lang.Object ref = secretFile_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretFile_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder setSecretFile(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretFile_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder clearSecretFile() {
        bitField0_ = (bitField0_ & ~0x00000008);
        secretFile_ = getDefaultInstance().getSecretFile();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string secretFile = 4;</code>
       */
      public Builder setSecretFileBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        secretFile_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the authentication secret for User, default is empty.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000020;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/cephfs/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.CephFSVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.CephFSVolumeSource)
    private static final io.kubernetes.client.proto.V1.CephFSVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.CephFSVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.CephFSVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<CephFSVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<CephFSVolumeSource>() {
          @java.lang.Override
          public CephFSVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CephFSVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<CephFSVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CephFSVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.CephFSVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CinderPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.CinderPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    boolean hasVolumeID();
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    java.lang.String getVolumeID();
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeIDBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents a cinder volume resource in Openstack.
   * A Cinder volume must exist before mounting to a container.
   * The volume must also be in the same region as the kubelet.
   * Cinder volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.CinderPersistentVolumeSource}
   */
  public static final class CinderPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.CinderPersistentVolumeSource)
      CinderPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CinderPersistentVolumeSource.newBuilder() to construct.
    private CinderPersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CinderPersistentVolumeSource() {
      volumeID_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private CinderPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeID_;
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public boolean hasVolumeID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public java.lang.String getVolumeID() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeIDBytes() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.CinderPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.CinderPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.CinderPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeID() == other.hasVolumeID());
      if (hasVolumeID()) {
        result = result && getVolumeID().equals(other.getVolumeID());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeID()) {
        hash = (37 * hash) + VOLUMEID_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeID().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.CinderPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a cinder volume resource in Openstack.
     * A Cinder volume must exist before mounting to a container.
     * The volume must also be in the same region as the kubelet.
     * Cinder volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.CinderPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.CinderPersistentVolumeSource)
        io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.CinderPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.CinderPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.CinderPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeID_ = volumeID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.CinderPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.CinderPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.CinderPersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeID()) {
          bitField0_ |= 0x00000001;
          volumeID_ = other.volumeID_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.CinderPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.CinderPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeID_ = "";
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public boolean hasVolumeID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public java.lang.String getVolumeID() {
        java.lang.Object ref = volumeID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeIDBytes() {
        java.lang.Object ref = volumeID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder clearVolumeID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeID_ = getDefaultInstance().getVolumeID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.CinderPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.CinderPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.CinderPersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.CinderPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.CinderPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<CinderPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<CinderPersistentVolumeSource>() {
          @java.lang.Override
          public CinderPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CinderPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<CinderPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CinderPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface CinderVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.CinderVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    boolean hasVolumeID();
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    java.lang.String getVolumeID();
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeIDBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents a cinder volume resource in Openstack.
   * A Cinder volume must exist before mounting to a container.
   * The volume must also be in the same region as the kubelet.
   * Cinder volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.CinderVolumeSource}
   */
  public static final class CinderVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.CinderVolumeSource)
      CinderVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use CinderVolumeSource.newBuilder() to construct.
    private CinderVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private CinderVolumeSource() {
      volumeID_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private CinderVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_CinderVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.CinderVolumeSource.class,
              io.kubernetes.client.proto.V1.CinderVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeID_;
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public boolean hasVolumeID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public java.lang.String getVolumeID() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * volume id used to identify the volume in cinder
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeIDBytes() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: points to a secret object containing parameters used to connect
     * to OpenStack.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.CinderVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.CinderVolumeSource other =
          (io.kubernetes.client.proto.V1.CinderVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeID() == other.hasVolumeID());
      if (hasVolumeID()) {
        result = result && getVolumeID().equals(other.getVolumeID());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeID()) {
        hash = (37 * hash) + VOLUMEID_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeID().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.CinderVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a cinder volume resource in Openstack.
     * A Cinder volume must exist before mounting to a container.
     * The volume must also be in the same region as the kubelet.
     * Cinder volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.CinderVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.CinderVolumeSource)
        io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_CinderVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.CinderVolumeSource.class,
                io.kubernetes.client.proto.V1.CinderVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.CinderVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderVolumeSource build() {
        io.kubernetes.client.proto.V1.CinderVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.CinderVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.CinderVolumeSource result =
            new io.kubernetes.client.proto.V1.CinderVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeID_ = volumeID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.CinderVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.CinderVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.CinderVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeID()) {
          bitField0_ |= 0x00000001;
          volumeID_ = other.volumeID_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.CinderVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.CinderVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeID_ = "";
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public boolean hasVolumeID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public java.lang.String getVolumeID() {
        java.lang.Object ref = volumeID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeIDBytes() {
        java.lang.Object ref = volumeID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder clearVolumeID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeID_ = getDefaultInstance().getVolumeID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volume id used to identify the volume in cinder
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: points to a secret object containing parameters used to connect
       * to OpenStack.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.CinderVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.CinderVolumeSource)
    private static final io.kubernetes.client.proto.V1.CinderVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.CinderVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.CinderVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<CinderVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<CinderVolumeSource>() {
          @java.lang.Override
          public CinderVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CinderVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<CinderVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<CinderVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.CinderVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ClientIPConfigOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ClientIPConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
     * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
     * Default value is 10800(for 3 hours).
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 1;</code>
     */
    boolean hasTimeoutSeconds();
    /**
     *
     *
     * <pre>
     * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
     * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
     * Default value is 10800(for 3 hours).
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 1;</code>
     */
    int getTimeoutSeconds();
  }
  /**
   *
   *
   * <pre>
   * ClientIPConfig represents the configurations of Client IP based session affinity.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ClientIPConfig}
   */
  public static final class ClientIPConfig extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ClientIPConfig)
      ClientIPConfigOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ClientIPConfig.newBuilder() to construct.
    private ClientIPConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ClientIPConfig() {
      timeoutSeconds_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ClientIPConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                timeoutSeconds_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ClientIPConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ClientIPConfig.class,
              io.kubernetes.client.proto.V1.ClientIPConfig.Builder.class);
    }

    private int bitField0_;
    public static final int TIMEOUTSECONDS_FIELD_NUMBER = 1;
    private int timeoutSeconds_;
    /**
     *
     *
     * <pre>
     * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
     * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
     * Default value is 10800(for 3 hours).
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 1;</code>
     */
    public boolean hasTimeoutSeconds() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
     * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
     * Default value is 10800(for 3 hours).
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 1;</code>
     */
    public int getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, timeoutSeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, timeoutSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ClientIPConfig)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ClientIPConfig other =
          (io.kubernetes.client.proto.V1.ClientIPConfig) obj;

      boolean result = true;
      result = result && (hasTimeoutSeconds() == other.hasTimeoutSeconds());
      if (hasTimeoutSeconds()) {
        result = result && (getTimeoutSeconds() == other.getTimeoutSeconds());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTimeoutSeconds()) {
        hash = (37 * hash) + TIMEOUTSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getTimeoutSeconds();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ClientIPConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ClientIPConfig represents the configurations of Client IP based session affinity.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ClientIPConfig}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ClientIPConfig)
        io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ClientIPConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ClientIPConfig.class,
                io.kubernetes.client.proto.V1.ClientIPConfig.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ClientIPConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        timeoutSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ClientIPConfig getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ClientIPConfig build() {
        io.kubernetes.client.proto.V1.ClientIPConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ClientIPConfig buildPartial() {
        io.kubernetes.client.proto.V1.ClientIPConfig result =
            new io.kubernetes.client.proto.V1.ClientIPConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.timeoutSeconds_ = timeoutSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ClientIPConfig) {
          return mergeFrom((io.kubernetes.client.proto.V1.ClientIPConfig) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ClientIPConfig other) {
        if (other == io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()) return this;
        if (other.hasTimeoutSeconds()) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ClientIPConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ClientIPConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int timeoutSeconds_;
      /**
       *
       *
       * <pre>
       * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
       * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
       * Default value is 10800(for 3 hours).
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 1;</code>
       */
      public boolean hasTimeoutSeconds() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
       * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
       * Default value is 10800(for 3 hours).
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 1;</code>
       */
      public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       *
       *
       * <pre>
       * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
       * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
       * Default value is 10800(for 3 hours).
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 1;</code>
       */
      public Builder setTimeoutSeconds(int value) {
        bitField0_ |= 0x00000001;
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * timeoutSeconds specifies the seconds of ClientIP type session sticky time.
       * The value must be &gt;0 &amp;&amp; &lt;=86400(for 1 day) if ServiceAffinity == "ClientIP".
       * Default value is 10800(for 3 hours).
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 1;</code>
       */
      public Builder clearTimeoutSeconds() {
        bitField0_ = (bitField0_ & ~0x00000001);
        timeoutSeconds_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ClientIPConfig)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ClientIPConfig)
    private static final io.kubernetes.client.proto.V1.ClientIPConfig DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ClientIPConfig();
    }

    public static io.kubernetes.client.proto.V1.ClientIPConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ClientIPConfig> PARSER =
        new com.google.protobuf.AbstractParser<ClientIPConfig>() {
          @java.lang.Override
          public ClientIPConfig parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ClientIPConfig(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ClientIPConfig> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ClientIPConfig> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ClientIPConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ComponentConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ComponentCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();

    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    boolean hasError();
    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    java.lang.String getError();
    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    com.google.protobuf.ByteString getErrorBytes();
  }
  /**
   *
   *
   * <pre>
   * Information about the condition of a component.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ComponentCondition}
   */
  public static final class ComponentCondition extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ComponentCondition)
      ComponentConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ComponentCondition.newBuilder() to construct.
    private ComponentCondition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ComponentCondition() {
      type_ = "";
      status_ = "";
      message_ = "";
      error_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ComponentCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                message_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                error_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ComponentCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ComponentCondition.class,
              io.kubernetes.client.proto.V1.ComponentCondition.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type of condition for a component.
     * Valid value: "Healthy"
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Status of the condition for a component.
     * Valid values for "Healthy": "True", "False", or "Unknown".
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Message about the condition for a component.
     * For example, information about a health check.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ERROR_FIELD_NUMBER = 4;
    private volatile java.lang.Object error_;
    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public boolean hasError() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public java.lang.String getError() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          error_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Condition error code for a component.
     * For example, a health check error code.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public com.google.protobuf.ByteString getErrorBytes() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        error_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, error_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, error_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ComponentCondition)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ComponentCondition other =
          (io.kubernetes.client.proto.V1.ComponentCondition) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && (hasError() == other.hasError());
      if (hasError()) {
        result = result && getError().equals(other.getError());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasError()) {
        hash = (37 * hash) + ERROR_FIELD_NUMBER;
        hash = (53 * hash) + getError().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ComponentCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Information about the condition of a component.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ComponentCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ComponentCondition)
        io.kubernetes.client.proto.V1.ComponentConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ComponentCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ComponentCondition.class,
                io.kubernetes.client.proto.V1.ComponentCondition.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ComponentCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        error_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentCondition.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentCondition build() {
        io.kubernetes.client.proto.V1.ComponentCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentCondition buildPartial() {
        io.kubernetes.client.proto.V1.ComponentCondition result =
            new io.kubernetes.client.proto.V1.ComponentCondition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.error_ = error_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ComponentCondition) {
          return mergeFrom((io.kubernetes.client.proto.V1.ComponentCondition) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ComponentCondition other) {
        if (other == io.kubernetes.client.proto.V1.ComponentCondition.getDefaultInstance())
          return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasError()) {
          bitField0_ |= 0x00000008;
          error_ = other.error_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ComponentCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ComponentCondition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of condition for a component.
       * Valid value: "Healthy"
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition for a component.
       * Valid values for "Healthy": "True", "False", or "Unknown".
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message about the condition for a component.
       * For example, information about a health check.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object error_ = "";
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public java.lang.String getError() {
        java.lang.Object ref = error_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            error_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public com.google.protobuf.ByteString getErrorBytes() {
        java.lang.Object ref = error_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          error_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder setError(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        error_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder clearError() {
        bitField0_ = (bitField0_ & ~0x00000008);
        error_ = getDefaultInstance().getError();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Condition error code for a component.
       * For example, a health check error code.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder setErrorBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        error_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ComponentCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ComponentCondition)
    private static final io.kubernetes.client.proto.V1.ComponentCondition DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ComponentCondition();
    }

    public static io.kubernetes.client.proto.V1.ComponentCondition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ComponentCondition> PARSER =
        new com.google.protobuf.AbstractParser<ComponentCondition>() {
          @java.lang.Override
          public ComponentCondition parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ComponentCondition(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ComponentCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ComponentCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ComponentCondition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ComponentStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ComponentStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ComponentCondition> getConditionsList();
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.ComponentCondition getConditions(int index);
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.ComponentConditionOrBuilder getConditionsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ComponentStatus (and ComponentStatusList) holds the cluster validation info.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ComponentStatus}
   */
  public static final class ComponentStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ComponentStatus)
      ComponentStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ComponentStatus.newBuilder() to construct.
    private ComponentStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ComponentStatus() {
      conditions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ComponentStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  conditions_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.ComponentCondition>();
                  mutable_bitField0_ |= 0x00000002;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ComponentCondition.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ComponentStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ComponentStatus.class,
              io.kubernetes.client.proto.V1.ComponentStatus.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int CONDITIONS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ComponentCondition> conditions_;
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ComponentCondition> getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ComponentCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of component conditions observed
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ComponentConditionOrBuilder getConditionsOrBuilder(
        int index) {
      return conditions_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(2, conditions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, conditions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ComponentStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ComponentStatus other =
          (io.kubernetes.client.proto.V1.ComponentStatus) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ComponentStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ComponentStatus (and ComponentStatusList) holds the cluster validation info.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ComponentStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ComponentStatus)
        io.kubernetes.client.proto.V1.ComponentStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ComponentStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ComponentStatus.class,
                io.kubernetes.client.proto.V1.ComponentStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ComponentStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getConditionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatus build() {
        io.kubernetes.client.proto.V1.ComponentStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatus buildPartial() {
        io.kubernetes.client.proto.V1.ComponentStatus result =
            new io.kubernetes.client.proto.V1.ComponentStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ComponentStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.ComponentStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ComponentStatus other) {
        if (other == io.kubernetes.client.proto.V1.ComponentStatus.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000002);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ComponentStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ComponentStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ComponentCondition> conditions_ =
          java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          conditions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ComponentCondition>(
                  conditions_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ComponentCondition,
              io.kubernetes.client.proto.V1.ComponentCondition.Builder,
              io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ComponentCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.ComponentCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.ComponentCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder addConditions(io.kubernetes.client.proto.V1.ComponentCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.ComponentCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.ComponentCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.ComponentCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ComponentCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentCondition.Builder getConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentConditionOrBuilder getConditionsOrBuilder(
          int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ComponentCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentCondition.Builder addConditionsBuilder(
          int index) {
        return getConditionsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.ComponentCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of component conditions observed
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentCondition conditions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ComponentCondition.Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ComponentCondition,
              io.kubernetes.client.proto.V1.ComponentCondition.Builder,
              io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ComponentCondition,
                  io.kubernetes.client.proto.V1.ComponentCondition.Builder,
                  io.kubernetes.client.proto.V1.ComponentConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ComponentStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ComponentStatus)
    private static final io.kubernetes.client.proto.V1.ComponentStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ComponentStatus();
    }

    public static io.kubernetes.client.proto.V1.ComponentStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ComponentStatus> PARSER =
        new com.google.protobuf.AbstractParser<ComponentStatus>() {
          @java.lang.Override
          public ComponentStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ComponentStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ComponentStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ComponentStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ComponentStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ComponentStatusListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ComponentStatusList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ComponentStatus> getItemsList();
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ComponentStatus getItems(int index);
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ComponentStatusOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Status of all the conditions for the component as a list of ComponentStatus objects.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ComponentStatusList}
   */
  public static final class ComponentStatusList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ComponentStatusList)
      ComponentStatusListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ComponentStatusList.newBuilder() to construct.
    private ComponentStatusList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ComponentStatusList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ComponentStatusList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ComponentStatus>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ComponentStatus.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ComponentStatusList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ComponentStatusList.class,
              io.kubernetes.client.proto.V1.ComponentStatusList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ComponentStatus> items_;
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ComponentStatus> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ComponentStatus getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of ComponentStatus objects.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ComponentStatusOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ComponentStatusList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ComponentStatusList other =
          (io.kubernetes.client.proto.V1.ComponentStatusList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ComponentStatusList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Status of all the conditions for the component as a list of ComponentStatus objects.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ComponentStatusList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ComponentStatusList)
        io.kubernetes.client.proto.V1.ComponentStatusListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ComponentStatusList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ComponentStatusList.class,
                io.kubernetes.client.proto.V1.ComponentStatusList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ComponentStatusList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatusList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ComponentStatusList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatusList build() {
        io.kubernetes.client.proto.V1.ComponentStatusList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ComponentStatusList buildPartial() {
        io.kubernetes.client.proto.V1.ComponentStatusList result =
            new io.kubernetes.client.proto.V1.ComponentStatusList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ComponentStatusList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ComponentStatusList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ComponentStatusList other) {
        if (other == io.kubernetes.client.proto.V1.ComponentStatusList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ComponentStatusList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ComponentStatusList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ComponentStatus> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ComponentStatus>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ComponentStatus,
              io.kubernetes.client.proto.V1.ComponentStatus.Builder,
              io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ComponentStatus> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentStatus getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.ComponentStatus value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ComponentStatus.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ComponentStatus value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.ComponentStatus value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.ComponentStatus.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ComponentStatus.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ComponentStatus> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentStatus.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentStatusOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentStatus.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ComponentStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ComponentStatus.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ComponentStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ComponentStatus objects.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ComponentStatus items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ComponentStatus.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ComponentStatus,
              io.kubernetes.client.proto.V1.ComponentStatus.Builder,
              io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ComponentStatus,
                  io.kubernetes.client.proto.V1.ComponentStatus.Builder,
                  io.kubernetes.client.proto.V1.ComponentStatusOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ComponentStatusList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ComponentStatusList)
    private static final io.kubernetes.client.proto.V1.ComponentStatusList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ComponentStatusList();
    }

    public static io.kubernetes.client.proto.V1.ComponentStatusList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ComponentStatusList> PARSER =
        new com.google.protobuf.AbstractParser<ComponentStatusList>() {
          @java.lang.Override
          public ComponentStatusList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ComponentStatusList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ComponentStatusList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ComponentStatusList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ComponentStatusList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMap)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    int getDataCount();
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    boolean containsData(java.lang.String key);
    /** Use {@link #getDataMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getData();
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getDataMap();
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    java.lang.String getDataOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    java.lang.String getDataOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    int getBinaryDataCount();
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    boolean containsBinaryData(java.lang.String key);
    /** Use {@link #getBinaryDataMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryData();
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryDataMap();
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    com.google.protobuf.ByteString getBinaryDataOrDefault(
        java.lang.String key, com.google.protobuf.ByteString defaultValue);
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    com.google.protobuf.ByteString getBinaryDataOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * ConfigMap holds configuration data for pods to consume.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMap}
   */
  public static final class ConfigMap extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMap)
      ConfigMapOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMap.newBuilder() to construct.
    private ConfigMap(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMap() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMap(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  data_ =
                      com.google.protobuf.MapField.newMapField(DataDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> data__ =
                    input.readMessage(
                        DataDefaultEntryHolder.defaultEntry.getParserForType(), extensionRegistry);
                data_.getMutableMap().put(data__.getKey(), data__.getValue());
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  binaryData_ =
                      com.google.protobuf.MapField.newMapField(
                          BinaryDataDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000004;
                }
                com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString>
                    binaryData__ =
                        input.readMessage(
                            BinaryDataDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                binaryData_.getMutableMap().put(binaryData__.getKey(), binaryData__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ConfigMap_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 2:
          return internalGetData();
        case 3:
          return internalGetBinaryData();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMap_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMap.class,
              io.kubernetes.client.proto.V1.ConfigMap.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int DATA_FIELD_NUMBER = 2;

    private static final class DataDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> data_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetData() {
      if (data_ == null) {
        return com.google.protobuf.MapField.emptyMapField(DataDefaultEntryHolder.defaultEntry);
      }
      return data_;
    }

    public int getDataCount() {
      return internalGetData().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    public boolean containsData(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetData().getMap().containsKey(key);
    }
    /** Use {@link #getDataMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getData() {
      return getDataMap();
    }
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getDataMap() {
      return internalGetData().getMap();
    }
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    public java.lang.String getDataOrDefault(java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetData().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Data contains the configuration data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * Values with non-UTF-8 byte sequences must use the BinaryData field.
     * The keys stored in Data must not overlap with the keys in
     * the BinaryData field, this is enforced during validation process.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; data = 2;</code>
     */
    public java.lang.String getDataOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetData().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int BINARYDATA_FIELD_NUMBER = 3;

    private static final class BinaryDataDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, com.google.protobuf.ByteString>newDefaultInstance(
                      io.kubernetes
                          .client
                          .proto
                          .V1
                          .internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_descriptor,
                      com.google.protobuf.WireFormat.FieldType.STRING,
                      "",
                      com.google.protobuf.WireFormat.FieldType.BYTES,
                      com.google.protobuf.ByteString.EMPTY);
    }

    private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
        binaryData_;

    private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
        internalGetBinaryData() {
      if (binaryData_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            BinaryDataDefaultEntryHolder.defaultEntry);
      }
      return binaryData_;
    }

    public int getBinaryDataCount() {
      return internalGetBinaryData().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    public boolean containsBinaryData(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetBinaryData().getMap().containsKey(key);
    }
    /** Use {@link #getBinaryDataMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryData() {
      return getBinaryDataMap();
    }
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryDataMap() {
      return internalGetBinaryData().getMap();
    }
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    public com.google.protobuf.ByteString getBinaryDataOrDefault(
        java.lang.String key, com.google.protobuf.ByteString defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
          internalGetBinaryData().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * BinaryData contains the binary data.
     * Each key must consist of alphanumeric characters, '-', '_' or '.'.
     * BinaryData can contain byte sequences that are not in the UTF-8 range.
     * The keys stored in BinaryData must not overlap with the ones in
     * the Data field, this is enforced during validation process.
     * Using this field will require 1.10+ apiserver and
     * kubelet.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
     */
    public com.google.protobuf.ByteString getBinaryDataOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
          internalGetBinaryData().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetData(), DataDefaultEntryHolder.defaultEntry, 2);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetBinaryData(), BinaryDataDefaultEntryHolder.defaultEntry, 3);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetData().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> data__ =
            DataDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, data__);
      }
      for (java.util.Map.Entry<java.lang.String, com.google.protobuf.ByteString> entry :
          internalGetBinaryData().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString>
            binaryData__ =
                BinaryDataDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, binaryData__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMap)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMap other = (io.kubernetes.client.proto.V1.ConfigMap) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && internalGetData().equals(other.internalGetData());
      result = result && internalGetBinaryData().equals(other.internalGetBinaryData());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (!internalGetData().getMap().isEmpty()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + internalGetData().hashCode();
      }
      if (!internalGetBinaryData().getMap().isEmpty()) {
        hash = (37 * hash) + BINARYDATA_FIELD_NUMBER;
        hash = (53 * hash) + internalGetBinaryData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMap parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ConfigMap prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConfigMap holds configuration data for pods to consume.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMap}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMap)
        io.kubernetes.client.proto.V1.ConfigMapOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMap_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 2:
            return internalGetData();
          case 3:
            return internalGetBinaryData();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMutableData();
          case 3:
            return internalGetMutableBinaryData();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMap_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMap.class,
                io.kubernetes.client.proto.V1.ConfigMap.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMap.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableData().clear();
        internalGetMutableBinaryData().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMap_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMap getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMap.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMap build() {
        io.kubernetes.client.proto.V1.ConfigMap result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMap buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMap result =
            new io.kubernetes.client.proto.V1.ConfigMap(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        result.data_ = internalGetData();
        result.data_.makeImmutable();
        result.binaryData_ = internalGetBinaryData();
        result.binaryData_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMap) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMap) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMap other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMap.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        internalGetMutableData().mergeFrom(other.internalGetData());
        internalGetMutableBinaryData().mergeFrom(other.internalGetBinaryData());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMap parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ConfigMap) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> data_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetData() {
        if (data_ == null) {
          return com.google.protobuf.MapField.emptyMapField(DataDefaultEntryHolder.defaultEntry);
        }
        return data_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableData() {
        onChanged();
        ;
        if (data_ == null) {
          data_ = com.google.protobuf.MapField.newMapField(DataDefaultEntryHolder.defaultEntry);
        }
        if (!data_.isMutable()) {
          data_ = data_.copy();
        }
        return data_;
      }

      public int getDataCount() {
        return internalGetData().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public boolean containsData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetData().getMap().containsKey(key);
      }
      /** Use {@link #getDataMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getData() {
        return getDataMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getDataMap() {
        return internalGetData().getMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public java.lang.String getDataOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetData().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public java.lang.String getDataOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetData().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearData() {
        internalGetMutableData().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public Builder removeData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableData().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableData() {
        return internalGetMutableData().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public Builder putData(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableData().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data contains the configuration data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * Values with non-UTF-8 byte sequences must use the BinaryData field.
       * The keys stored in Data must not overlap with the keys in
       * the BinaryData field, this is enforced during validation process.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; data = 2;</code>
       */
      public Builder putAllData(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableData().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
          binaryData_;

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
          internalGetBinaryData() {
        if (binaryData_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              BinaryDataDefaultEntryHolder.defaultEntry);
        }
        return binaryData_;
      }

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
          internalGetMutableBinaryData() {
        onChanged();
        ;
        if (binaryData_ == null) {
          binaryData_ =
              com.google.protobuf.MapField.newMapField(BinaryDataDefaultEntryHolder.defaultEntry);
        }
        if (!binaryData_.isMutable()) {
          binaryData_ = binaryData_.copy();
        }
        return binaryData_;
      }

      public int getBinaryDataCount() {
        return internalGetBinaryData().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public boolean containsBinaryData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetBinaryData().getMap().containsKey(key);
      }
      /** Use {@link #getBinaryDataMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryData() {
        return getBinaryDataMap();
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getBinaryDataMap() {
        return internalGetBinaryData().getMap();
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public com.google.protobuf.ByteString getBinaryDataOrDefault(
          java.lang.String key, com.google.protobuf.ByteString defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
            internalGetBinaryData().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public com.google.protobuf.ByteString getBinaryDataOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
            internalGetBinaryData().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearBinaryData() {
        internalGetMutableBinaryData().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public Builder removeBinaryData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableBinaryData().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString>
          getMutableBinaryData() {
        return internalGetMutableBinaryData().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public Builder putBinaryData(java.lang.String key, com.google.protobuf.ByteString value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableBinaryData().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * BinaryData contains the binary data.
       * Each key must consist of alphanumeric characters, '-', '_' or '.'.
       * BinaryData can contain byte sequences that are not in the UTF-8 range.
       * The keys stored in BinaryData must not overlap with the ones in
       * the Data field, this is enforced during validation process.
       * Using this field will require 1.10+ apiserver and
       * kubelet.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; binaryData = 3;</code>
       */
      public Builder putAllBinaryData(
          java.util.Map<java.lang.String, com.google.protobuf.ByteString> values) {
        internalGetMutableBinaryData().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMap)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMap)
    private static final io.kubernetes.client.proto.V1.ConfigMap DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMap();
    }

    public static io.kubernetes.client.proto.V1.ConfigMap getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMap> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMap>() {
          @java.lang.Override
          public ConfigMap parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMap(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMap> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMap> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMap getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapEnvSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapEnvSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    boolean hasLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * ConfigMapEnvSource selects a ConfigMap to populate the environment
   * variables with.
   * The contents of the target ConfigMap's Data field will represent the
   * key-value pairs as environment variables.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapEnvSource}
   */
  public static final class ConfigMapEnvSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapEnvSource)
      ConfigMapEnvSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapEnvSource.newBuilder() to construct.
    private ConfigMapEnvSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapEnvSource() {
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapEnvSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapEnvSource.class,
              io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int OPTIONAL_FIELD_NUMBER = 2;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapEnvSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapEnvSource other =
          (io.kubernetes.client.proto.V1.ConfigMapEnvSource) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ConfigMapEnvSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConfigMapEnvSource selects a ConfigMap to populate the environment
     * variables with.
     * The contents of the target ConfigMap's Data field will represent the
     * key-value pairs as environment variables.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapEnvSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapEnvSource)
        io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapEnvSource.class,
                io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapEnvSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapEnvSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapEnvSource build() {
        io.kubernetes.client.proto.V1.ConfigMapEnvSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapEnvSource buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapEnvSource result =
            new io.kubernetes.client.proto.V1.ConfigMapEnvSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapEnvSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapEnvSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapEnvSource other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapEnvSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ConfigMapEnvSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000002;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000002);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapEnvSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapEnvSource)
    private static final io.kubernetes.client.proto.V1.ConfigMapEnvSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapEnvSource();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapEnvSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapEnvSource> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapEnvSource>() {
          @java.lang.Override
          public ConfigMapEnvSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapEnvSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapEnvSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapEnvSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapEnvSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapKeySelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapKeySelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    boolean hasLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * Selects a key from a ConfigMap.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapKeySelector}
   */
  public static final class ConfigMapKeySelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapKeySelector)
      ConfigMapKeySelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapKeySelector.newBuilder() to construct.
    private ConfigMapKeySelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapKeySelector() {
      key_ = "";
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapKeySelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                key_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapKeySelector.class,
              io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The key to select.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPTIONAL_FIELD_NUMBER = 3;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, key_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapKeySelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapKeySelector other =
          (io.kubernetes.client.proto.V1.ConfigMapKeySelector) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ConfigMapKeySelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Selects a key from a ConfigMap.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapKeySelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapKeySelector)
        io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapKeySelector.class,
                io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapKeySelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapKeySelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapKeySelector build() {
        io.kubernetes.client.proto.V1.ConfigMapKeySelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapKeySelector buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapKeySelector result =
            new io.kubernetes.client.proto.V1.ConfigMapKeySelector(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapKeySelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapKeySelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapKeySelector other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (other.hasKey()) {
          bitField0_ |= 0x00000002;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapKeySelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ConfigMapKeySelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key to select.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
        return this;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000004;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapKeySelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapKeySelector)
    private static final io.kubernetes.client.proto.V1.ConfigMapKeySelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapKeySelector();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapKeySelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapKeySelector> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapKeySelector>() {
          @java.lang.Override
          public ConfigMapKeySelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapKeySelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapKeySelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapKeySelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapKeySelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ConfigMap> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMap getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ConfigMapOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ConfigMapList is a resource containing a list of ConfigMap objects.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapList}
   */
  public static final class ConfigMapList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapList)
      ConfigMapListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapList.newBuilder() to construct.
    private ConfigMapList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ConfigMap>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMap.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapList.class,
              io.kubernetes.client.proto.V1.ConfigMapList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ConfigMap> items_;
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ConfigMap> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ConfigMapOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMap getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is the list of ConfigMaps.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapList other =
          (io.kubernetes.client.proto.V1.ConfigMapList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ConfigMapList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConfigMapList is a resource containing a list of ConfigMap objects.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapList)
        io.kubernetes.client.proto.V1.ConfigMapListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapList.class,
                io.kubernetes.client.proto.V1.ConfigMapList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapList build() {
        io.kubernetes.client.proto.V1.ConfigMapList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapList buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapList result =
            new io.kubernetes.client.proto.V1.ConfigMapList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapList other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ConfigMapList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ConfigMap> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ConfigMap>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMap,
              io.kubernetes.client.proto.V1.ConfigMap.Builder,
              io.kubernetes.client.proto.V1.ConfigMapOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ConfigMap> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMap getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.ConfigMap value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ConfigMap.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ConfigMap value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.ConfigMap value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ConfigMap.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ConfigMap.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ConfigMap> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMap.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ConfigMapOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMap.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ConfigMap.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMap.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ConfigMap.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is the list of ConfigMaps.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ConfigMap items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ConfigMap.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMap,
              io.kubernetes.client.proto.V1.ConfigMap.Builder,
              io.kubernetes.client.proto.V1.ConfigMapOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMap,
                  io.kubernetes.client.proto.V1.ConfigMap.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapList)
    private static final io.kubernetes.client.proto.V1.ConfigMapList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapList();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapList> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapList>() {
          @java.lang.Override
          public ConfigMapList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapNodeConfigSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapNodeConfigSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    boolean hasNamespace();
    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    java.lang.String getNamespace();
    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    com.google.protobuf.ByteString getNamespaceBytes();

    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    boolean hasUid();
    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    java.lang.String getUid();
    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    com.google.protobuf.ByteString getUidBytes();

    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    boolean hasResourceVersion();
    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    java.lang.String getResourceVersion();
    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    com.google.protobuf.ByteString getResourceVersionBytes();

    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    boolean hasKubeletConfigKey();
    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    java.lang.String getKubeletConfigKey();
    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    com.google.protobuf.ByteString getKubeletConfigKeyBytes();
  }
  /**
   *
   *
   * <pre>
   * ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapNodeConfigSource}
   */
  public static final class ConfigMapNodeConfigSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapNodeConfigSource)
      ConfigMapNodeConfigSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapNodeConfigSource.newBuilder() to construct.
    private ConfigMapNodeConfigSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapNodeConfigSource() {
      namespace_ = "";
      name_ = "";
      uid_ = "";
      resourceVersion_ = "";
      kubeletConfigKey_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapNodeConfigSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                namespace_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                name_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                uid_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                resourceVersion_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                kubeletConfigKey_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.class,
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder.class);
    }

    private int bitField0_;
    public static final int NAMESPACE_FIELD_NUMBER = 1;
    private volatile java.lang.Object namespace_;
    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public java.lang.String getNamespace() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          namespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Namespace is the metadata.namespace of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string namespace = 1;</code>
     */
    public com.google.protobuf.ByteString getNamespaceBytes() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        namespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name is the metadata.name of the referenced ConfigMap.
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string name = 2;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UID_FIELD_NUMBER = 3;
    private volatile java.lang.Object uid_;
    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    public java.lang.String getUid() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          uid_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * UID is the metadata.UID of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 3;</code>
     */
    public com.google.protobuf.ByteString getUidBytes() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        uid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCEVERSION_FIELD_NUMBER = 4;
    private volatile java.lang.Object resourceVersion_;
    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    public boolean hasResourceVersion() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    public java.lang.String getResourceVersion() {
      java.lang.Object ref = resourceVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          resourceVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
     * This field is forbidden in Node.Spec, and required in Node.Status.
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 4;</code>
     */
    public com.google.protobuf.ByteString getResourceVersionBytes() {
      java.lang.Object ref = resourceVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        resourceVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KUBELETCONFIGKEY_FIELD_NUMBER = 5;
    private volatile java.lang.Object kubeletConfigKey_;
    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    public boolean hasKubeletConfigKey() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    public java.lang.String getKubeletConfigKey() {
      java.lang.Object ref = kubeletConfigKey_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kubeletConfigKey_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
     * This field is required in all cases.
     * </pre>
     *
     * <code>optional string kubeletConfigKey = 5;</code>
     */
    public com.google.protobuf.ByteString getKubeletConfigKeyBytes() {
      java.lang.Object ref = kubeletConfigKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kubeletConfigKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, namespace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, uid_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, resourceVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, kubeletConfigKey_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, namespace_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, name_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, uid_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, resourceVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, kubeletConfigKey_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource other =
          (io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource) obj;

      boolean result = true;
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace().equals(other.getNamespace());
      }
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid().equals(other.getUid());
      }
      result = result && (hasResourceVersion() == other.hasResourceVersion());
      if (hasResourceVersion()) {
        result = result && getResourceVersion().equals(other.getResourceVersion());
      }
      result = result && (hasKubeletConfigKey() == other.hasKubeletConfigKey());
      if (hasKubeletConfigKey()) {
        result = result && getKubeletConfigKey().equals(other.getKubeletConfigKey());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      if (hasResourceVersion()) {
        hash = (37 * hash) + RESOURCEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getResourceVersion().hashCode();
      }
      if (hasKubeletConfigKey()) {
        hash = (37 * hash) + KUBELETCONFIGKEY_FIELD_NUMBER;
        hash = (53 * hash) + getKubeletConfigKey().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ConfigMapNodeConfigSource contains the information to reference a ConfigMap as a config source for the Node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapNodeConfigSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapNodeConfigSource)
        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.class,
                io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        kubeletConfigKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource build() {
        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource result =
            new io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.namespace_ = namespace_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.resourceVersion_ = resourceVersion_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.kubeletConfigKey_ = kubeletConfigKey_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance())
          return this;
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000001;
          namespace_ = other.namespace_;
          onChanged();
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000002;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasUid()) {
          bitField0_ |= 0x00000004;
          uid_ = other.uid_;
          onChanged();
        }
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000008;
          resourceVersion_ = other.resourceVersion_;
          onChanged();
        }
        if (other.hasKubeletConfigKey()) {
          bitField0_ |= 0x00000010;
          kubeletConfigKey_ = other.kubeletConfigKey_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object namespace_ = "";
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public com.google.protobuf.ByteString getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder setNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000001);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace is the metadata.namespace of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string namespace = 1;</code>
       */
      public Builder setNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        namespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is the metadata.name of the referenced ConfigMap.
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string name = 2;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public java.lang.String getUid() {
        java.lang.Object ref = uid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            uid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public com.google.protobuf.ByteString getUidBytes() {
        java.lang.Object ref = uid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          uid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public Builder setUid(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000004);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UID is the metadata.UID of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 3;</code>
       */
      public Builder setUidBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        uid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVersion_ = "";
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public boolean hasResourceVersion() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public java.lang.String getResourceVersion() {
        java.lang.Object ref = resourceVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            resourceVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public com.google.protobuf.ByteString getResourceVersionBytes() {
        java.lang.Object ref = resourceVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          resourceVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder setResourceVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        resourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder clearResourceVersion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        resourceVersion_ = getDefaultInstance().getResourceVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ResourceVersion is the metadata.ResourceVersion of the referenced ConfigMap.
       * This field is forbidden in Node.Spec, and required in Node.Status.
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 4;</code>
       */
      public Builder setResourceVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        resourceVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kubeletConfigKey_ = "";
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public boolean hasKubeletConfigKey() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public java.lang.String getKubeletConfigKey() {
        java.lang.Object ref = kubeletConfigKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kubeletConfigKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public com.google.protobuf.ByteString getKubeletConfigKeyBytes() {
        java.lang.Object ref = kubeletConfigKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kubeletConfigKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public Builder setKubeletConfigKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        kubeletConfigKey_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public Builder clearKubeletConfigKey() {
        bitField0_ = (bitField0_ & ~0x00000010);
        kubeletConfigKey_ = getDefaultInstance().getKubeletConfigKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * KubeletConfigKey declares which key of the referenced ConfigMap corresponds to the KubeletConfiguration structure
       * This field is required in all cases.
       * </pre>
       *
       * <code>optional string kubeletConfigKey = 5;</code>
       */
      public Builder setKubeletConfigKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        kubeletConfigKey_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapNodeConfigSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapNodeConfigSource)
    private static final io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapNodeConfigSource> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapNodeConfigSource>() {
          @java.lang.Override
          public ConfigMapNodeConfigSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapNodeConfigSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapNodeConfigSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapNodeConfigSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapProjectionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapProjection)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    boolean hasLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPath getItems(int index);
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * Adapts a ConfigMap into a projected volume.
   * The contents of the target ConfigMap's Data field will be presented in a
   * projected volume as files using the keys in the Data field as the file names,
   * unless the items element is populated with specific mappings of keys to paths.
   * Note that this is identical to a configmap volume source without the default
   * mode.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapProjection}
   */
  public static final class ConfigMapProjection extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapProjection)
      ConfigMapProjectionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapProjection.newBuilder() to construct.
    private ConfigMapProjection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapProjection() {
      items_ = java.util.Collections.emptyList();
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapProjection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.KeyToPath.PARSER, extensionRegistry));
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000002;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapProjection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapProjection.class,
              io.kubernetes.client.proto.V1.ConfigMapProjection.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_;
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    public static final int OPTIONAL_FIELD_NUMBER = 4;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(4, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapProjection)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapProjection other =
          (io.kubernetes.client.proto.V1.ConfigMapProjection) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ConfigMapProjection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Adapts a ConfigMap into a projected volume.
     * The contents of the target ConfigMap's Data field will be presented in a
     * projected volume as files using the keys in the Data field as the file names,
     * unless the items element is populated with specific mappings of keys to paths.
     * Note that this is identical to a configmap volume source without the default
     * mode.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapProjection}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapProjection)
        io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapProjection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapProjection.class,
                io.kubernetes.client.proto.V1.ConfigMapProjection.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapProjection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapProjection build() {
        io.kubernetes.client.proto.V1.ConfigMapProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapProjection buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapProjection result =
            new io.kubernetes.client.proto.V1.ConfigMapProjection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapProjection) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapProjection) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapProjection other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapProjection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ConfigMapProjection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.KeyToPath> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.KeyToPath,
                  io.kubernetes.client.proto.V1.KeyToPath.Builder,
                  io.kubernetes.client.proto.V1.KeyToPathOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000004;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapProjection)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapProjection)
    private static final io.kubernetes.client.proto.V1.ConfigMapProjection DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapProjection();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapProjection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapProjection> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapProjection>() {
          @java.lang.Override
          public ConfigMapProjection parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapProjection(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapProjection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapProjection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapProjection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ConfigMapVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ConfigMapVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    boolean hasLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPath getItems(int index);
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    boolean hasDefaultMode();
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    int getDefaultMode();

    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * Adapts a ConfigMap into a volume.
   * The contents of the target ConfigMap's Data field will be presented in a
   * volume as files using the keys in the Data field as the file names, unless
   * the items element is populated with specific mappings of keys to paths.
   * ConfigMap volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ConfigMapVolumeSource}
   */
  public static final class ConfigMapVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ConfigMapVolumeSource)
      ConfigMapVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ConfigMapVolumeSource.newBuilder() to construct.
    private ConfigMapVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ConfigMapVolumeSource() {
      items_ = java.util.Collections.emptyList();
      defaultMode_ = 0;
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ConfigMapVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.KeyToPath.PARSER, extensionRegistry));
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000002;
                defaultMode_ = input.readInt32();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000004;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource.class,
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_;
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * ConfigMap will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the ConfigMap,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    public static final int DEFAULTMODE_FIELD_NUMBER = 3;
    private int defaultMode_;
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    public boolean hasDefaultMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    public int getDefaultMode() {
      return defaultMode_;
    }

    public static final int OPTIONAL_FIELD_NUMBER = 4;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the ConfigMap or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(3, defaultMode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(4, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, defaultMode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ConfigMapVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ConfigMapVolumeSource other =
          (io.kubernetes.client.proto.V1.ConfigMapVolumeSource) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && (hasDefaultMode() == other.hasDefaultMode());
      if (hasDefaultMode()) {
        result = result && (getDefaultMode() == other.getDefaultMode());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      if (hasDefaultMode()) {
        hash = (37 * hash) + DEFAULTMODE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultMode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ConfigMapVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Adapts a ConfigMap into a volume.
     * The contents of the target ConfigMap's Data field will be presented in a
     * volume as files using the keys in the Data field as the file names, unless
     * the items element is populated with specific mappings of keys to paths.
     * ConfigMap volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ConfigMapVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ConfigMapVolumeSource)
        io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ConfigMapVolumeSource.class,
                io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ConfigMapVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        defaultMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource build() {
        io.kubernetes.client.proto.V1.ConfigMapVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ConfigMapVolumeSource result =
            new io.kubernetes.client.proto.V1.ConfigMapVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.defaultMode_ = defaultMode_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ConfigMapVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ConfigMapVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ConfigMapVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        if (other.hasDefaultMode()) {
          setDefaultMode(other.getDefaultMode());
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ConfigMapVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ConfigMapVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.KeyToPath> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * ConfigMap will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the ConfigMap,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.KeyToPath,
                  io.kubernetes.client.proto.V1.KeyToPath.Builder,
                  io.kubernetes.client.proto.V1.KeyToPathOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private int defaultMode_;
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public boolean hasDefaultMode() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public int getDefaultMode() {
        return defaultMode_;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public Builder setDefaultMode(int value) {
        bitField0_ |= 0x00000004;
        defaultMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public Builder clearDefaultMode() {
        bitField0_ = (bitField0_ & ~0x00000004);
        defaultMode_ = 0;
        onChanged();
        return this;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000008;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the ConfigMap or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000008);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ConfigMapVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ConfigMapVolumeSource)
    private static final io.kubernetes.client.proto.V1.ConfigMapVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ConfigMapVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ConfigMapVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ConfigMapVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ConfigMapVolumeSource>() {
          @java.lang.Override
          public ConfigMapVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ConfigMapVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ConfigMapVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ConfigMapVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ConfigMapVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Container)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    boolean hasImage();
    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    java.lang.String getImage();
    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    com.google.protobuf.ByteString getImageBytes();

    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    java.util.List<java.lang.String> getCommandList();
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    int getCommandCount();
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    java.lang.String getCommand(int index);
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    com.google.protobuf.ByteString getCommandBytes(int index);

    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    java.util.List<java.lang.String> getArgsList();
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    int getArgsCount();
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    java.lang.String getArgs(int index);
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    com.google.protobuf.ByteString getArgsBytes(int index);

    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    boolean hasWorkingDir();
    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    java.lang.String getWorkingDir();
    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    com.google.protobuf.ByteString getWorkingDirBytes();

    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ContainerPort> getPortsList();
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    io.kubernetes.client.proto.V1.ContainerPort getPorts(int index);
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    int getPortsCount();
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerPortOrBuilder>
        getPortsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    io.kubernetes.client.proto.V1.ContainerPortOrBuilder getPortsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EnvFromSource> getEnvFromList();
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    io.kubernetes.client.proto.V1.EnvFromSource getEnvFrom(int index);
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    int getEnvFromCount();
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>
        getEnvFromOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder getEnvFromOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EnvVar> getEnvList();
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    io.kubernetes.client.proto.V1.EnvVar getEnv(int index);
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    int getEnvCount();
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EnvVarOrBuilder> getEnvOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    io.kubernetes.client.proto.V1.EnvVarOrBuilder getEnvOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    boolean hasResources();
    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    io.kubernetes.client.proto.V1.ResourceRequirements getResources();
    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder();

    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.VolumeMount> getVolumeMountsList();
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    io.kubernetes.client.proto.V1.VolumeMount getVolumeMounts(int index);
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    int getVolumeMountsCount();
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.VolumeMountOrBuilder>
        getVolumeMountsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    io.kubernetes.client.proto.V1.VolumeMountOrBuilder getVolumeMountsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.VolumeDevice> getVolumeDevicesList();
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    io.kubernetes.client.proto.V1.VolumeDevice getVolumeDevices(int index);
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    int getVolumeDevicesCount();
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>
        getVolumeDevicesOrBuilderList();
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder getVolumeDevicesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    boolean hasLivenessProbe();
    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    io.kubernetes.client.proto.V1.Probe getLivenessProbe();
    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    io.kubernetes.client.proto.V1.ProbeOrBuilder getLivenessProbeOrBuilder();

    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    boolean hasReadinessProbe();
    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    io.kubernetes.client.proto.V1.Probe getReadinessProbe();
    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    io.kubernetes.client.proto.V1.ProbeOrBuilder getReadinessProbeOrBuilder();

    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    boolean hasLifecycle();
    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    io.kubernetes.client.proto.V1.Lifecycle getLifecycle();
    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    io.kubernetes.client.proto.V1.LifecycleOrBuilder getLifecycleOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    boolean hasTerminationMessagePath();
    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    java.lang.String getTerminationMessagePath();
    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    com.google.protobuf.ByteString getTerminationMessagePathBytes();

    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    boolean hasTerminationMessagePolicy();
    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    java.lang.String getTerminationMessagePolicy();
    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    com.google.protobuf.ByteString getTerminationMessagePolicyBytes();

    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    boolean hasImagePullPolicy();
    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    java.lang.String getImagePullPolicy();
    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    com.google.protobuf.ByteString getImagePullPolicyBytes();

    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    boolean hasSecurityContext();
    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    io.kubernetes.client.proto.V1.SecurityContext getSecurityContext();
    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    io.kubernetes.client.proto.V1.SecurityContextOrBuilder getSecurityContextOrBuilder();

    /**
     *
     *
     * <pre>
     * Whether this container should allocate a buffer for stdin in the container runtime. If this
     * is not set, reads from stdin in the container will always result in EOF.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 16;</code>
     */
    boolean hasStdin();
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a buffer for stdin in the container runtime. If this
     * is not set, reads from stdin in the container will always result in EOF.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 16;</code>
     */
    boolean getStdin();

    /**
     *
     *
     * <pre>
     * Whether the container runtime should close the stdin channel after it has been opened by
     * a single attach. When stdin is true the stdin stream will remain open across multiple attach
     * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
     * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
     * at which time stdin is closed and remains closed until the container is restarted. If this
     * flag is false, a container processes that reads from stdin will never receive an EOF.
     * Default is false
     * +optional
     * </pre>
     *
     * <code>optional bool stdinOnce = 17;</code>
     */
    boolean hasStdinOnce();
    /**
     *
     *
     * <pre>
     * Whether the container runtime should close the stdin channel after it has been opened by
     * a single attach. When stdin is true the stdin stream will remain open across multiple attach
     * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
     * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
     * at which time stdin is closed and remains closed until the container is restarted. If this
     * flag is false, a container processes that reads from stdin will never receive an EOF.
     * Default is false
     * +optional
     * </pre>
     *
     * <code>optional bool stdinOnce = 17;</code>
     */
    boolean getStdinOnce();

    /**
     *
     *
     * <pre>
     * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 18;</code>
     */
    boolean hasTty();
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 18;</code>
     */
    boolean getTty();
  }
  /**
   *
   *
   * <pre>
   * A single application container that you want to run within a pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Container}
   */
  public static final class Container extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Container)
      ContainerOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Container.newBuilder() to construct.
    private Container(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Container() {
      name_ = "";
      image_ = "";
      command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      workingDir_ = "";
      ports_ = java.util.Collections.emptyList();
      envFrom_ = java.util.Collections.emptyList();
      env_ = java.util.Collections.emptyList();
      volumeMounts_ = java.util.Collections.emptyList();
      volumeDevices_ = java.util.Collections.emptyList();
      terminationMessagePath_ = "";
      terminationMessagePolicy_ = "";
      imagePullPolicy_ = "";
      stdin_ = false;
      stdinOnce_ = false;
      tty_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Container(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                image_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  command_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                command_.add(bs);
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  args_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000008;
                }
                args_.add(bs);
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                workingDir_ = bs;
                break;
              }
            case 50:
              {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerPort>();
                  mutable_bitField0_ |= 0x00000020;
                }
                ports_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerPort.PARSER, extensionRegistry));
                break;
              }
            case 58:
              {
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  env_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EnvVar>();
                  mutable_bitField0_ |= 0x00000080;
                }
                env_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EnvVar.PARSER, extensionRegistry));
                break;
              }
            case 66:
              {
                io.kubernetes.client.proto.V1.ResourceRequirements.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = resources_.toBuilder();
                }
                resources_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceRequirements.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resources_);
                  resources_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 74:
              {
                if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                  volumeMounts_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeMount>();
                  mutable_bitField0_ |= 0x00000200;
                }
                volumeMounts_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VolumeMount.PARSER, extensionRegistry));
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.V1.Probe.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = livenessProbe_.toBuilder();
                }
                livenessProbe_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Probe.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(livenessProbe_);
                  livenessProbe_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 90:
              {
                io.kubernetes.client.proto.V1.Probe.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = readinessProbe_.toBuilder();
                }
                readinessProbe_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Probe.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(readinessProbe_);
                  readinessProbe_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 98:
              {
                io.kubernetes.client.proto.V1.Lifecycle.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = lifecycle_.toBuilder();
                }
                lifecycle_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Lifecycle.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lifecycle_);
                  lifecycle_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            case 106:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                terminationMessagePath_ = bs;
                break;
              }
            case 114:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000200;
                imagePullPolicy_ = bs;
                break;
              }
            case 122:
              {
                io.kubernetes.client.proto.V1.SecurityContext.Builder subBuilder = null;
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  subBuilder = securityContext_.toBuilder();
                }
                securityContext_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecurityContext.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(securityContext_);
                  securityContext_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000400;
                break;
              }
            case 128:
              {
                bitField0_ |= 0x00000800;
                stdin_ = input.readBool();
                break;
              }
            case 136:
              {
                bitField0_ |= 0x00001000;
                stdinOnce_ = input.readBool();
                break;
              }
            case 144:
              {
                bitField0_ |= 0x00002000;
                tty_ = input.readBool();
                break;
              }
            case 154:
              {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  envFrom_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EnvFromSource>();
                  mutable_bitField0_ |= 0x00000040;
                }
                envFrom_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EnvFromSource.PARSER, extensionRegistry));
                break;
              }
            case 162:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                terminationMessagePolicy_ = bs;
                break;
              }
            case 170:
              {
                if (!((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
                  volumeDevices_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeDevice>();
                  mutable_bitField0_ |= 0x00000400;
                }
                volumeDevices_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VolumeDevice.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          command_ = command_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          args_ = args_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          ports_ = java.util.Collections.unmodifiableList(ports_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          env_ = java.util.Collections.unmodifiableList(env_);
        }
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          volumeMounts_ = java.util.Collections.unmodifiableList(volumeMounts_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          envFrom_ = java.util.Collections.unmodifiableList(envFrom_);
        }
        if (((mutable_bitField0_ & 0x00000400) == 0x00000400)) {
          volumeDevices_ = java.util.Collections.unmodifiableList(volumeDevices_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Container_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Container_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Container.class,
              io.kubernetes.client.proto.V1.Container.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the container specified as a DNS_LABEL.
     * Each container in a pod must have a unique name (DNS_LABEL).
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IMAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object image_;
    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public boolean hasImage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public java.lang.String getImage() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          image_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Docker image name.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * This field is optional to allow higher level config management to default or override
     * container images in workload controllers like Deployments and StatefulSets.
     * +optional
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public com.google.protobuf.ByteString getImageBytes() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        image_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList command_;
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getCommandList() {
      return command_;
    }
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    public int getCommandCount() {
      return command_.size();
    }
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    public java.lang.String getCommand(int index) {
      return command_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Entrypoint array. Not executed within a shell.
     * The docker image's ENTRYPOINT is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string command = 3;</code>
     */
    public com.google.protobuf.ByteString getCommandBytes(int index) {
      return command_.getByteString(index);
    }

    public static final int ARGS_FIELD_NUMBER = 4;
    private com.google.protobuf.LazyStringList args_;
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    public com.google.protobuf.ProtocolStringList getArgsList() {
      return args_;
    }
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    public int getArgsCount() {
      return args_.size();
    }
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    public java.lang.String getArgs(int index) {
      return args_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Arguments to the entrypoint.
     * The docker image's CMD is used if this is not provided.
     * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
     * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
     * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
     * regardless of whether the variable exists or not.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
     * +optional
     * </pre>
     *
     * <code>repeated string args = 4;</code>
     */
    public com.google.protobuf.ByteString getArgsBytes(int index) {
      return args_.getByteString(index);
    }

    public static final int WORKINGDIR_FIELD_NUMBER = 5;
    private volatile java.lang.Object workingDir_;
    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    public boolean hasWorkingDir() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    public java.lang.String getWorkingDir() {
      java.lang.Object ref = workingDir_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          workingDir_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Container's working directory.
     * If not specified, the container runtime's default will be used, which
     * might be configured in the container image.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string workingDir = 5;</code>
     */
    public com.google.protobuf.ByteString getWorkingDirBytes() {
      java.lang.Object ref = workingDir_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        workingDir_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PORTS_FIELD_NUMBER = 6;
    private java.util.List<io.kubernetes.client.proto.V1.ContainerPort> ports_;
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ContainerPort> getPortsList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerPortOrBuilder>
        getPortsOrBuilderList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    public int getPortsCount() {
      return ports_.size();
    }
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerPort getPorts(int index) {
      return ports_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of ports to expose from the container. Exposing a port here gives
     * the system additional information about the network connections a
     * container uses, but is primarily informational. Not specifying a port here
     * DOES NOT prevent that port from being exposed. Any port which is
     * listening on the default "0.0.0.0" address inside a container will be
     * accessible from the network.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=containerPort
     * +patchStrategy=merge
     * +listType=map
     * +listMapKey=containerPort
     * +listMapKey=protocol
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerPortOrBuilder getPortsOrBuilder(int index) {
      return ports_.get(index);
    }

    public static final int ENVFROM_FIELD_NUMBER = 19;
    private java.util.List<io.kubernetes.client.proto.V1.EnvFromSource> envFrom_;
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EnvFromSource> getEnvFromList() {
      return envFrom_;
    }
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>
        getEnvFromOrBuilderList() {
      return envFrom_;
    }
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    public int getEnvFromCount() {
      return envFrom_.size();
    }
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    public io.kubernetes.client.proto.V1.EnvFromSource getEnvFrom(int index) {
      return envFrom_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of sources to populate environment variables in the container.
     * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
     * will be reported as an event when the container is starting. When a key exists in multiple
     * sources, the value associated with the last source will take precedence.
     * Values defined by an Env with a duplicate key will take precedence.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
     */
    public io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder getEnvFromOrBuilder(int index) {
      return envFrom_.get(index);
    }

    public static final int ENV_FIELD_NUMBER = 7;
    private java.util.List<io.kubernetes.client.proto.V1.EnvVar> env_;
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EnvVar> getEnvList() {
      return env_;
    }
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EnvVarOrBuilder>
        getEnvOrBuilderList() {
      return env_;
    }
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    public int getEnvCount() {
      return env_.size();
    }
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    public io.kubernetes.client.proto.V1.EnvVar getEnv(int index) {
      return env_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of environment variables to set in the container.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
     */
    public io.kubernetes.client.proto.V1.EnvVarOrBuilder getEnvOrBuilder(int index) {
      return env_.get(index);
    }

    public static final int RESOURCES_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.V1.ResourceRequirements resources_;
    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    public boolean hasResources() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceRequirements getResources() {
      return resources_ == null
          ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
          : resources_;
    }
    /**
     *
     *
     * <pre>
     * Compute Resources required by this container.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder() {
      return resources_ == null
          ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
          : resources_;
    }

    public static final int VOLUMEMOUNTS_FIELD_NUMBER = 9;
    private java.util.List<io.kubernetes.client.proto.V1.VolumeMount> volumeMounts_;
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.VolumeMount> getVolumeMountsList() {
      return volumeMounts_;
    }
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeMountOrBuilder>
        getVolumeMountsOrBuilderList() {
      return volumeMounts_;
    }
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    public int getVolumeMountsCount() {
      return volumeMounts_.size();
    }
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeMount getVolumeMounts(int index) {
      return volumeMounts_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Pod volumes to mount into the container's filesystem.
     * Cannot be updated.
     * +optional
     * +patchMergeKey=mountPath
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeMountOrBuilder getVolumeMountsOrBuilder(int index) {
      return volumeMounts_.get(index);
    }

    public static final int VOLUMEDEVICES_FIELD_NUMBER = 21;
    private java.util.List<io.kubernetes.client.proto.V1.VolumeDevice> volumeDevices_;
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.VolumeDevice> getVolumeDevicesList() {
      return volumeDevices_;
    }
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>
        getVolumeDevicesOrBuilderList() {
      return volumeDevices_;
    }
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    public int getVolumeDevicesCount() {
      return volumeDevices_.size();
    }
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeDevice getVolumeDevices(int index) {
      return volumeDevices_.get(index);
    }
    /**
     *
     *
     * <pre>
     * volumeDevices is the list of block devices to be used by the container.
     * This is a beta feature.
     * +patchMergeKey=devicePath
     * +patchStrategy=merge
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder getVolumeDevicesOrBuilder(
        int index) {
      return volumeDevices_.get(index);
    }

    public static final int LIVENESSPROBE_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.V1.Probe livenessProbe_;
    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    public boolean hasLivenessProbe() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    public io.kubernetes.client.proto.V1.Probe getLivenessProbe() {
      return livenessProbe_ == null
          ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
          : livenessProbe_;
    }
    /**
     *
     *
     * <pre>
     * Periodic probe of container liveness.
     * Container will be restarted if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
     */
    public io.kubernetes.client.proto.V1.ProbeOrBuilder getLivenessProbeOrBuilder() {
      return livenessProbe_ == null
          ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
          : livenessProbe_;
    }

    public static final int READINESSPROBE_FIELD_NUMBER = 11;
    private io.kubernetes.client.proto.V1.Probe readinessProbe_;
    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    public boolean hasReadinessProbe() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    public io.kubernetes.client.proto.V1.Probe getReadinessProbe() {
      return readinessProbe_ == null
          ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
          : readinessProbe_;
    }
    /**
     *
     *
     * <pre>
     * Periodic probe of container service readiness.
     * Container will be removed from service endpoints if the probe fails.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
     */
    public io.kubernetes.client.proto.V1.ProbeOrBuilder getReadinessProbeOrBuilder() {
      return readinessProbe_ == null
          ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
          : readinessProbe_;
    }

    public static final int LIFECYCLE_FIELD_NUMBER = 12;
    private io.kubernetes.client.proto.V1.Lifecycle lifecycle_;
    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    public boolean hasLifecycle() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    public io.kubernetes.client.proto.V1.Lifecycle getLifecycle() {
      return lifecycle_ == null
          ? io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()
          : lifecycle_;
    }
    /**
     *
     *
     * <pre>
     * Actions that the management system should take in response to container lifecycle events.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
     */
    public io.kubernetes.client.proto.V1.LifecycleOrBuilder getLifecycleOrBuilder() {
      return lifecycle_ == null
          ? io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()
          : lifecycle_;
    }

    public static final int TERMINATIONMESSAGEPATH_FIELD_NUMBER = 13;
    private volatile java.lang.Object terminationMessagePath_;
    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    public boolean hasTerminationMessagePath() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    public java.lang.String getTerminationMessagePath() {
      java.lang.Object ref = terminationMessagePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          terminationMessagePath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: Path at which the file to which the container's termination message
     * will be written is mounted into the container's filesystem.
     * Message written is intended to be brief final status, such as an assertion failure message.
     * Will be truncated by the node if greater than 4096 bytes. The total message length across
     * all containers will be limited to 12kb.
     * Defaults to /dev/termination-log.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePath = 13;</code>
     */
    public com.google.protobuf.ByteString getTerminationMessagePathBytes() {
      java.lang.Object ref = terminationMessagePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        terminationMessagePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TERMINATIONMESSAGEPOLICY_FIELD_NUMBER = 20;
    private volatile java.lang.Object terminationMessagePolicy_;
    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    public boolean hasTerminationMessagePolicy() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    public java.lang.String getTerminationMessagePolicy() {
      java.lang.Object ref = terminationMessagePolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          terminationMessagePolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Indicate how the termination message should be populated. File will use the contents of
     * terminationMessagePath to populate the container status message on both success and failure.
     * FallbackToLogsOnError will use the last chunk of container log output if the termination
     * message file is empty and the container exited with an error.
     * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
     * Defaults to File.
     * Cannot be updated.
     * +optional
     * </pre>
     *
     * <code>optional string terminationMessagePolicy = 20;</code>
     */
    public com.google.protobuf.ByteString getTerminationMessagePolicyBytes() {
      java.lang.Object ref = terminationMessagePolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        terminationMessagePolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IMAGEPULLPOLICY_FIELD_NUMBER = 14;
    private volatile java.lang.Object imagePullPolicy_;
    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    public boolean hasImagePullPolicy() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    public java.lang.String getImagePullPolicy() {
      java.lang.Object ref = imagePullPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          imagePullPolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Image pull policy.
     * One of Always, Never, IfNotPresent.
     * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
     * +optional
     * </pre>
     *
     * <code>optional string imagePullPolicy = 14;</code>
     */
    public com.google.protobuf.ByteString getImagePullPolicyBytes() {
      java.lang.Object ref = imagePullPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        imagePullPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECURITYCONTEXT_FIELD_NUMBER = 15;
    private io.kubernetes.client.proto.V1.SecurityContext securityContext_;
    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    public boolean hasSecurityContext() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    public io.kubernetes.client.proto.V1.SecurityContext getSecurityContext() {
      return securityContext_ == null
          ? io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance()
          : securityContext_;
    }
    /**
     *
     *
     * <pre>
     * Security options the pod should run with.
     * More info: https://kubernetes.io/docs/concepts/policy/security-context/
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
     */
    public io.kubernetes.client.proto.V1.SecurityContextOrBuilder getSecurityContextOrBuilder() {
      return securityContext_ == null
          ? io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance()
          : securityContext_;
    }

    public static final int STDIN_FIELD_NUMBER = 16;
    private boolean stdin_;
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a buffer for stdin in the container runtime. If this
     * is not set, reads from stdin in the container will always result in EOF.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 16;</code>
     */
    public boolean hasStdin() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a buffer for stdin in the container runtime. If this
     * is not set, reads from stdin in the container will always result in EOF.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 16;</code>
     */
    public boolean getStdin() {
      return stdin_;
    }

    public static final int STDINONCE_FIELD_NUMBER = 17;
    private boolean stdinOnce_;
    /**
     *
     *
     * <pre>
     * Whether the container runtime should close the stdin channel after it has been opened by
     * a single attach. When stdin is true the stdin stream will remain open across multiple attach
     * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
     * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
     * at which time stdin is closed and remains closed until the container is restarted. If this
     * flag is false, a container processes that reads from stdin will never receive an EOF.
     * Default is false
     * +optional
     * </pre>
     *
     * <code>optional bool stdinOnce = 17;</code>
     */
    public boolean hasStdinOnce() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     *
     *
     * <pre>
     * Whether the container runtime should close the stdin channel after it has been opened by
     * a single attach. When stdin is true the stdin stream will remain open across multiple attach
     * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
     * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
     * at which time stdin is closed and remains closed until the container is restarted. If this
     * flag is false, a container processes that reads from stdin will never receive an EOF.
     * Default is false
     * +optional
     * </pre>
     *
     * <code>optional bool stdinOnce = 17;</code>
     */
    public boolean getStdinOnce() {
      return stdinOnce_;
    }

    public static final int TTY_FIELD_NUMBER = 18;
    private boolean tty_;
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 18;</code>
     */
    public boolean hasTty() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     *
     *
     * <pre>
     * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 18;</code>
     */
    public boolean getTty() {
      return tty_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, image_);
      }
      for (int i = 0; i < command_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, command_.getRaw(i));
      }
      for (int i = 0; i < args_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, args_.getRaw(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, workingDir_);
      }
      for (int i = 0; i < ports_.size(); i++) {
        output.writeMessage(6, ports_.get(i));
      }
      for (int i = 0; i < env_.size(); i++) {
        output.writeMessage(7, env_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(8, getResources());
      }
      for (int i = 0; i < volumeMounts_.size(); i++) {
        output.writeMessage(9, volumeMounts_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(10, getLivenessProbe());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(11, getReadinessProbe());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(12, getLifecycle());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 13, terminationMessagePath_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, imagePullPolicy_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(15, getSecurityContext());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(16, stdin_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeBool(17, stdinOnce_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeBool(18, tty_);
      }
      for (int i = 0; i < envFrom_.size(); i++) {
        output.writeMessage(19, envFrom_.get(i));
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 20, terminationMessagePolicy_);
      }
      for (int i = 0; i < volumeDevices_.size(); i++) {
        output.writeMessage(21, volumeDevices_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, image_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < command_.size(); i++) {
          dataSize += computeStringSizeNoTag(command_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCommandList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < args_.size(); i++) {
          dataSize += computeStringSizeNoTag(args_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getArgsList().size();
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, workingDir_);
      }
      for (int i = 0; i < ports_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, ports_.get(i));
      }
      for (int i = 0; i < env_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, env_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getResources());
      }
      for (int i = 0; i < volumeMounts_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, volumeMounts_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getLivenessProbe());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getReadinessProbe());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getLifecycle());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size +=
            com.google.protobuf.GeneratedMessageV3.computeStringSize(13, terminationMessagePath_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, imagePullPolicy_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getSecurityContext());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(16, stdin_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(17, stdinOnce_);
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(18, tty_);
      }
      for (int i = 0; i < envFrom_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(19, envFrom_.get(i));
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size +=
            com.google.protobuf.GeneratedMessageV3.computeStringSize(20, terminationMessagePolicy_);
      }
      for (int i = 0; i < volumeDevices_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(21, volumeDevices_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Container)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Container other = (io.kubernetes.client.proto.V1.Container) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage().equals(other.getImage());
      }
      result = result && getCommandList().equals(other.getCommandList());
      result = result && getArgsList().equals(other.getArgsList());
      result = result && (hasWorkingDir() == other.hasWorkingDir());
      if (hasWorkingDir()) {
        result = result && getWorkingDir().equals(other.getWorkingDir());
      }
      result = result && getPortsList().equals(other.getPortsList());
      result = result && getEnvFromList().equals(other.getEnvFromList());
      result = result && getEnvList().equals(other.getEnvList());
      result = result && (hasResources() == other.hasResources());
      if (hasResources()) {
        result = result && getResources().equals(other.getResources());
      }
      result = result && getVolumeMountsList().equals(other.getVolumeMountsList());
      result = result && getVolumeDevicesList().equals(other.getVolumeDevicesList());
      result = result && (hasLivenessProbe() == other.hasLivenessProbe());
      if (hasLivenessProbe()) {
        result = result && getLivenessProbe().equals(other.getLivenessProbe());
      }
      result = result && (hasReadinessProbe() == other.hasReadinessProbe());
      if (hasReadinessProbe()) {
        result = result && getReadinessProbe().equals(other.getReadinessProbe());
      }
      result = result && (hasLifecycle() == other.hasLifecycle());
      if (hasLifecycle()) {
        result = result && getLifecycle().equals(other.getLifecycle());
      }
      result = result && (hasTerminationMessagePath() == other.hasTerminationMessagePath());
      if (hasTerminationMessagePath()) {
        result = result && getTerminationMessagePath().equals(other.getTerminationMessagePath());
      }
      result = result && (hasTerminationMessagePolicy() == other.hasTerminationMessagePolicy());
      if (hasTerminationMessagePolicy()) {
        result =
            result && getTerminationMessagePolicy().equals(other.getTerminationMessagePolicy());
      }
      result = result && (hasImagePullPolicy() == other.hasImagePullPolicy());
      if (hasImagePullPolicy()) {
        result = result && getImagePullPolicy().equals(other.getImagePullPolicy());
      }
      result = result && (hasSecurityContext() == other.hasSecurityContext());
      if (hasSecurityContext()) {
        result = result && getSecurityContext().equals(other.getSecurityContext());
      }
      result = result && (hasStdin() == other.hasStdin());
      if (hasStdin()) {
        result = result && (getStdin() == other.getStdin());
      }
      result = result && (hasStdinOnce() == other.hasStdinOnce());
      if (hasStdinOnce()) {
        result = result && (getStdinOnce() == other.getStdinOnce());
      }
      result = result && (hasTty() == other.hasTty());
      if (hasTty()) {
        result = result && (getTty() == other.getTty());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      if (getCommandCount() > 0) {
        hash = (37 * hash) + COMMAND_FIELD_NUMBER;
        hash = (53 * hash) + getCommandList().hashCode();
      }
      if (getArgsCount() > 0) {
        hash = (37 * hash) + ARGS_FIELD_NUMBER;
        hash = (53 * hash) + getArgsList().hashCode();
      }
      if (hasWorkingDir()) {
        hash = (37 * hash) + WORKINGDIR_FIELD_NUMBER;
        hash = (53 * hash) + getWorkingDir().hashCode();
      }
      if (getPortsCount() > 0) {
        hash = (37 * hash) + PORTS_FIELD_NUMBER;
        hash = (53 * hash) + getPortsList().hashCode();
      }
      if (getEnvFromCount() > 0) {
        hash = (37 * hash) + ENVFROM_FIELD_NUMBER;
        hash = (53 * hash) + getEnvFromList().hashCode();
      }
      if (getEnvCount() > 0) {
        hash = (37 * hash) + ENV_FIELD_NUMBER;
        hash = (53 * hash) + getEnvList().hashCode();
      }
      if (hasResources()) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResources().hashCode();
      }
      if (getVolumeMountsCount() > 0) {
        hash = (37 * hash) + VOLUMEMOUNTS_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeMountsList().hashCode();
      }
      if (getVolumeDevicesCount() > 0) {
        hash = (37 * hash) + VOLUMEDEVICES_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeDevicesList().hashCode();
      }
      if (hasLivenessProbe()) {
        hash = (37 * hash) + LIVENESSPROBE_FIELD_NUMBER;
        hash = (53 * hash) + getLivenessProbe().hashCode();
      }
      if (hasReadinessProbe()) {
        hash = (37 * hash) + READINESSPROBE_FIELD_NUMBER;
        hash = (53 * hash) + getReadinessProbe().hashCode();
      }
      if (hasLifecycle()) {
        hash = (37 * hash) + LIFECYCLE_FIELD_NUMBER;
        hash = (53 * hash) + getLifecycle().hashCode();
      }
      if (hasTerminationMessagePath()) {
        hash = (37 * hash) + TERMINATIONMESSAGEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getTerminationMessagePath().hashCode();
      }
      if (hasTerminationMessagePolicy()) {
        hash = (37 * hash) + TERMINATIONMESSAGEPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getTerminationMessagePolicy().hashCode();
      }
      if (hasImagePullPolicy()) {
        hash = (37 * hash) + IMAGEPULLPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getImagePullPolicy().hashCode();
      }
      if (hasSecurityContext()) {
        hash = (37 * hash) + SECURITYCONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getSecurityContext().hashCode();
      }
      if (hasStdin()) {
        hash = (37 * hash) + STDIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdin());
      }
      if (hasStdinOnce()) {
        hash = (37 * hash) + STDINONCE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdinOnce());
      }
      if (hasTty()) {
        hash = (37 * hash) + TTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getTty());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Container parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Container parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Container parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Container prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A single application container that you want to run within a pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Container}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Container)
        io.kubernetes.client.proto.V1.ContainerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Container_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Container_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Container.class,
                io.kubernetes.client.proto.V1.Container.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Container.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPortsFieldBuilder();
          getEnvFromFieldBuilder();
          getEnvFieldBuilder();
          getResourcesFieldBuilder();
          getVolumeMountsFieldBuilder();
          getVolumeDevicesFieldBuilder();
          getLivenessProbeFieldBuilder();
          getReadinessProbeFieldBuilder();
          getLifecycleFieldBuilder();
          getSecurityContextFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        image_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        workingDir_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          portsBuilder_.clear();
        }
        if (envFromBuilder_ == null) {
          envFrom_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          envFromBuilder_.clear();
        }
        if (envBuilder_ == null) {
          env_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          envBuilder_.clear();
        }
        if (resourcesBuilder_ == null) {
          resources_ = null;
        } else {
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (volumeMountsBuilder_ == null) {
          volumeMounts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          volumeMountsBuilder_.clear();
        }
        if (volumeDevicesBuilder_ == null) {
          volumeDevices_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
        } else {
          volumeDevicesBuilder_.clear();
        }
        if (livenessProbeBuilder_ == null) {
          livenessProbe_ = null;
        } else {
          livenessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (readinessProbeBuilder_ == null) {
          readinessProbe_ = null;
        } else {
          readinessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (lifecycleBuilder_ == null) {
          lifecycle_ = null;
        } else {
          lifecycleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        terminationMessagePath_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        terminationMessagePolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00008000);
        imagePullPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00010000);
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        stdin_ = false;
        bitField0_ = (bitField0_ & ~0x00040000);
        stdinOnce_ = false;
        bitField0_ = (bitField0_ & ~0x00080000);
        tty_ = false;
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Container_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Container getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Container.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Container build() {
        io.kubernetes.client.proto.V1.Container result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Container buildPartial() {
        io.kubernetes.client.proto.V1.Container result =
            new io.kubernetes.client.proto.V1.Container(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.image_ = image_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          command_ = command_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.command_ = command_;
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          args_ = args_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000008);
        }
        result.args_ = args_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000004;
        }
        result.workingDir_ = workingDir_;
        if (portsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            ports_ = java.util.Collections.unmodifiableList(ports_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.ports_ = ports_;
        } else {
          result.ports_ = portsBuilder_.build();
        }
        if (envFromBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            envFrom_ = java.util.Collections.unmodifiableList(envFrom_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.envFrom_ = envFrom_;
        } else {
          result.envFrom_ = envFromBuilder_.build();
        }
        if (envBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            env_ = java.util.Collections.unmodifiableList(env_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.env_ = env_;
        } else {
          result.env_ = envBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000008;
        }
        if (resourcesBuilder_ == null) {
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        if (volumeMountsBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            volumeMounts_ = java.util.Collections.unmodifiableList(volumeMounts_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.volumeMounts_ = volumeMounts_;
        } else {
          result.volumeMounts_ = volumeMountsBuilder_.build();
        }
        if (volumeDevicesBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)) {
            volumeDevices_ = java.util.Collections.unmodifiableList(volumeDevices_);
            bitField0_ = (bitField0_ & ~0x00000400);
          }
          result.volumeDevices_ = volumeDevices_;
        } else {
          result.volumeDevices_ = volumeDevicesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000010;
        }
        if (livenessProbeBuilder_ == null) {
          result.livenessProbe_ = livenessProbe_;
        } else {
          result.livenessProbe_ = livenessProbeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000020;
        }
        if (readinessProbeBuilder_ == null) {
          result.readinessProbe_ = readinessProbe_;
        } else {
          result.readinessProbe_ = readinessProbeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000040;
        }
        if (lifecycleBuilder_ == null) {
          result.lifecycle_ = lifecycle_;
        } else {
          result.lifecycle_ = lifecycleBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00000080;
        }
        result.terminationMessagePath_ = terminationMessagePath_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00000100;
        }
        result.terminationMessagePolicy_ = terminationMessagePolicy_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00000200;
        }
        result.imagePullPolicy_ = imagePullPolicy_;
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00000400;
        }
        if (securityContextBuilder_ == null) {
          result.securityContext_ = securityContext_;
        } else {
          result.securityContext_ = securityContextBuilder_.build();
        }
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.stdin_ = stdin_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.stdinOnce_ = stdinOnce_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.tty_ = tty_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Container) {
          return mergeFrom((io.kubernetes.client.proto.V1.Container) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Container other) {
        if (other == io.kubernetes.client.proto.V1.Container.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasImage()) {
          bitField0_ |= 0x00000002;
          image_ = other.image_;
          onChanged();
        }
        if (!other.command_.isEmpty()) {
          if (command_.isEmpty()) {
            command_ = other.command_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureCommandIsMutable();
            command_.addAll(other.command_);
          }
          onChanged();
        }
        if (!other.args_.isEmpty()) {
          if (args_.isEmpty()) {
            args_ = other.args_;
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            ensureArgsIsMutable();
            args_.addAll(other.args_);
          }
          onChanged();
        }
        if (other.hasWorkingDir()) {
          bitField0_ |= 0x00000010;
          workingDir_ = other.workingDir_;
          onChanged();
        }
        if (portsBuilder_ == null) {
          if (!other.ports_.isEmpty()) {
            if (ports_.isEmpty()) {
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensurePortsIsMutable();
              ports_.addAll(other.ports_);
            }
            onChanged();
          }
        } else {
          if (!other.ports_.isEmpty()) {
            if (portsBuilder_.isEmpty()) {
              portsBuilder_.dispose();
              portsBuilder_ = null;
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000020);
              portsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPortsFieldBuilder()
                      : null;
            } else {
              portsBuilder_.addAllMessages(other.ports_);
            }
          }
        }
        if (envFromBuilder_ == null) {
          if (!other.envFrom_.isEmpty()) {
            if (envFrom_.isEmpty()) {
              envFrom_ = other.envFrom_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureEnvFromIsMutable();
              envFrom_.addAll(other.envFrom_);
            }
            onChanged();
          }
        } else {
          if (!other.envFrom_.isEmpty()) {
            if (envFromBuilder_.isEmpty()) {
              envFromBuilder_.dispose();
              envFromBuilder_ = null;
              envFrom_ = other.envFrom_;
              bitField0_ = (bitField0_ & ~0x00000040);
              envFromBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getEnvFromFieldBuilder()
                      : null;
            } else {
              envFromBuilder_.addAllMessages(other.envFrom_);
            }
          }
        }
        if (envBuilder_ == null) {
          if (!other.env_.isEmpty()) {
            if (env_.isEmpty()) {
              env_ = other.env_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureEnvIsMutable();
              env_.addAll(other.env_);
            }
            onChanged();
          }
        } else {
          if (!other.env_.isEmpty()) {
            if (envBuilder_.isEmpty()) {
              envBuilder_.dispose();
              envBuilder_ = null;
              env_ = other.env_;
              bitField0_ = (bitField0_ & ~0x00000080);
              envBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getEnvFieldBuilder()
                      : null;
            } else {
              envBuilder_.addAllMessages(other.env_);
            }
          }
        }
        if (other.hasResources()) {
          mergeResources(other.getResources());
        }
        if (volumeMountsBuilder_ == null) {
          if (!other.volumeMounts_.isEmpty()) {
            if (volumeMounts_.isEmpty()) {
              volumeMounts_ = other.volumeMounts_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureVolumeMountsIsMutable();
              volumeMounts_.addAll(other.volumeMounts_);
            }
            onChanged();
          }
        } else {
          if (!other.volumeMounts_.isEmpty()) {
            if (volumeMountsBuilder_.isEmpty()) {
              volumeMountsBuilder_.dispose();
              volumeMountsBuilder_ = null;
              volumeMounts_ = other.volumeMounts_;
              bitField0_ = (bitField0_ & ~0x00000200);
              volumeMountsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getVolumeMountsFieldBuilder()
                      : null;
            } else {
              volumeMountsBuilder_.addAllMessages(other.volumeMounts_);
            }
          }
        }
        if (volumeDevicesBuilder_ == null) {
          if (!other.volumeDevices_.isEmpty()) {
            if (volumeDevices_.isEmpty()) {
              volumeDevices_ = other.volumeDevices_;
              bitField0_ = (bitField0_ & ~0x00000400);
            } else {
              ensureVolumeDevicesIsMutable();
              volumeDevices_.addAll(other.volumeDevices_);
            }
            onChanged();
          }
        } else {
          if (!other.volumeDevices_.isEmpty()) {
            if (volumeDevicesBuilder_.isEmpty()) {
              volumeDevicesBuilder_.dispose();
              volumeDevicesBuilder_ = null;
              volumeDevices_ = other.volumeDevices_;
              bitField0_ = (bitField0_ & ~0x00000400);
              volumeDevicesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getVolumeDevicesFieldBuilder()
                      : null;
            } else {
              volumeDevicesBuilder_.addAllMessages(other.volumeDevices_);
            }
          }
        }
        if (other.hasLivenessProbe()) {
          mergeLivenessProbe(other.getLivenessProbe());
        }
        if (other.hasReadinessProbe()) {
          mergeReadinessProbe(other.getReadinessProbe());
        }
        if (other.hasLifecycle()) {
          mergeLifecycle(other.getLifecycle());
        }
        if (other.hasTerminationMessagePath()) {
          bitField0_ |= 0x00004000;
          terminationMessagePath_ = other.terminationMessagePath_;
          onChanged();
        }
        if (other.hasTerminationMessagePolicy()) {
          bitField0_ |= 0x00008000;
          terminationMessagePolicy_ = other.terminationMessagePolicy_;
          onChanged();
        }
        if (other.hasImagePullPolicy()) {
          bitField0_ |= 0x00010000;
          imagePullPolicy_ = other.imagePullPolicy_;
          onChanged();
        }
        if (other.hasSecurityContext()) {
          mergeSecurityContext(other.getSecurityContext());
        }
        if (other.hasStdin()) {
          setStdin(other.getStdin());
        }
        if (other.hasStdinOnce()) {
          setStdinOnce(other.getStdinOnce());
        }
        if (other.hasTty()) {
          setTty(other.getTty());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Container parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Container) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the container specified as a DNS_LABEL.
       * Each container in a pod must have a unique name (DNS_LABEL).
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object image_ = "";
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public java.lang.String getImage() {
        java.lang.Object ref = image_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            image_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public com.google.protobuf.ByteString getImageBytes() {
        java.lang.Object ref = image_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          image_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        image_ = getDefaultInstance().getImage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Docker image name.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * This field is optional to allow higher level config management to default or override
       * container images in workload controllers like Deployments and StatefulSets.
       * +optional
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList command_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureCommandIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          command_ = new com.google.protobuf.LazyStringArrayList(command_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getCommandList() {
        return command_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public int getCommandCount() {
        return command_.size();
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public java.lang.String getCommand(int index) {
        return command_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public com.google.protobuf.ByteString getCommandBytes(int index) {
        return command_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public Builder setCommand(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public Builder addCommand(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public Builder addAllCommand(java.lang.Iterable<java.lang.String> values) {
        ensureCommandIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, command_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public Builder clearCommand() {
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Entrypoint array. Not executed within a shell.
       * The docker image's ENTRYPOINT is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string command = 3;</code>
       */
      public Builder addCommandBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList args_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureArgsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          args_ = new com.google.protobuf.LazyStringArrayList(args_);
          bitField0_ |= 0x00000008;
        }
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public com.google.protobuf.ProtocolStringList getArgsList() {
        return args_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public int getArgsCount() {
        return args_.size();
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public java.lang.String getArgs(int index) {
        return args_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public com.google.protobuf.ByteString getArgsBytes(int index) {
        return args_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public Builder setArgs(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgsIsMutable();
        args_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public Builder addArgs(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public Builder addAllArgs(java.lang.Iterable<java.lang.String> values) {
        ensureArgsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, args_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public Builder clearArgs() {
        args_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Arguments to the entrypoint.
       * The docker image's CMD is used if this is not provided.
       * Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
       * cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax
       * can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
       * regardless of whether the variable exists or not.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
       * +optional
       * </pre>
       *
       * <code>repeated string args = 4;</code>
       */
      public Builder addArgsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureArgsIsMutable();
        args_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object workingDir_ = "";
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public boolean hasWorkingDir() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public java.lang.String getWorkingDir() {
        java.lang.Object ref = workingDir_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            workingDir_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public com.google.protobuf.ByteString getWorkingDirBytes() {
        java.lang.Object ref = workingDir_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          workingDir_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public Builder setWorkingDir(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        workingDir_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public Builder clearWorkingDir() {
        bitField0_ = (bitField0_ & ~0x00000010);
        workingDir_ = getDefaultInstance().getWorkingDir();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's working directory.
       * If not specified, the container runtime's default will be used, which
       * might be configured in the container image.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string workingDir = 5;</code>
       */
      public Builder setWorkingDirBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        workingDir_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ContainerPort> ports_ =
          java.util.Collections.emptyList();

      private void ensurePortsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerPort>(ports_);
          bitField0_ |= 0x00000020;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerPort,
              io.kubernetes.client.proto.V1.ContainerPort.Builder,
              io.kubernetes.client.proto.V1.ContainerPortOrBuilder>
          portsBuilder_;

      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerPort> getPortsList() {
        if (portsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ports_);
        } else {
          return portsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public int getPortsCount() {
        if (portsBuilder_ == null) {
          return ports_.size();
        } else {
          return portsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerPort getPorts(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder setPorts(int index, io.kubernetes.client.proto.V1.ContainerPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.set(index, value);
          onChanged();
        } else {
          portsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder setPorts(
          int index, io.kubernetes.client.proto.V1.ContainerPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.set(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.ContainerPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(value);
          onChanged();
        } else {
          portsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder addPorts(int index, io.kubernetes.client.proto.V1.ContainerPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(index, value);
          onChanged();
        } else {
          portsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.ContainerPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder addPorts(
          int index, io.kubernetes.client.proto.V1.ContainerPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder addAllPorts(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ContainerPort> values) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, ports_);
          onChanged();
        } else {
          portsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder clearPorts() {
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          portsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public Builder removePorts(int index) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.remove(index);
          onChanged();
        } else {
          portsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerPort.Builder getPortsBuilder(int index) {
        return getPortsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerPortOrBuilder getPortsOrBuilder(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerPortOrBuilder>
          getPortsOrBuilderList() {
        if (portsBuilder_ != null) {
          return portsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ports_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerPort.Builder addPortsBuilder() {
        return getPortsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ContainerPort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerPort.Builder addPortsBuilder(int index) {
        return getPortsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ContainerPort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ports to expose from the container. Exposing a port here gives
       * the system additional information about the network connections a
       * container uses, but is primarily informational. Not specifying a port here
       * DOES NOT prevent that port from being exposed. Any port which is
       * listening on the default "0.0.0.0" address inside a container will be
       * accessible from the network.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=containerPort
       * +patchStrategy=merge
       * +listType=map
       * +listMapKey=containerPort
       * +listMapKey=protocol
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerPort ports = 6;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerPort.Builder>
          getPortsBuilderList() {
        return getPortsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerPort,
              io.kubernetes.client.proto.V1.ContainerPort.Builder,
              io.kubernetes.client.proto.V1.ContainerPortOrBuilder>
          getPortsFieldBuilder() {
        if (portsBuilder_ == null) {
          portsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerPort,
                  io.kubernetes.client.proto.V1.ContainerPort.Builder,
                  io.kubernetes.client.proto.V1.ContainerPortOrBuilder>(
                  ports_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          ports_ = null;
        }
        return portsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.EnvFromSource> envFrom_ =
          java.util.Collections.emptyList();

      private void ensureEnvFromIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          envFrom_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EnvFromSource>(envFrom_);
          bitField0_ |= 0x00000040;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvFromSource,
              io.kubernetes.client.proto.V1.EnvFromSource.Builder,
              io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>
          envFromBuilder_;

      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EnvFromSource> getEnvFromList() {
        if (envFromBuilder_ == null) {
          return java.util.Collections.unmodifiableList(envFrom_);
        } else {
          return envFromBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public int getEnvFromCount() {
        if (envFromBuilder_ == null) {
          return envFrom_.size();
        } else {
          return envFromBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public io.kubernetes.client.proto.V1.EnvFromSource getEnvFrom(int index) {
        if (envFromBuilder_ == null) {
          return envFrom_.get(index);
        } else {
          return envFromBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder setEnvFrom(int index, io.kubernetes.client.proto.V1.EnvFromSource value) {
        if (envFromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvFromIsMutable();
          envFrom_.set(index, value);
          onChanged();
        } else {
          envFromBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder setEnvFrom(
          int index, io.kubernetes.client.proto.V1.EnvFromSource.Builder builderForValue) {
        if (envFromBuilder_ == null) {
          ensureEnvFromIsMutable();
          envFrom_.set(index, builderForValue.build());
          onChanged();
        } else {
          envFromBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder addEnvFrom(io.kubernetes.client.proto.V1.EnvFromSource value) {
        if (envFromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvFromIsMutable();
          envFrom_.add(value);
          onChanged();
        } else {
          envFromBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder addEnvFrom(int index, io.kubernetes.client.proto.V1.EnvFromSource value) {
        if (envFromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvFromIsMutable();
          envFrom_.add(index, value);
          onChanged();
        } else {
          envFromBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder addEnvFrom(
          io.kubernetes.client.proto.V1.EnvFromSource.Builder builderForValue) {
        if (envFromBuilder_ == null) {
          ensureEnvFromIsMutable();
          envFrom_.add(builderForValue.build());
          onChanged();
        } else {
          envFromBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder addEnvFrom(
          int index, io.kubernetes.client.proto.V1.EnvFromSource.Builder builderForValue) {
        if (envFromBuilder_ == null) {
          ensureEnvFromIsMutable();
          envFrom_.add(index, builderForValue.build());
          onChanged();
        } else {
          envFromBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder addAllEnvFrom(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EnvFromSource> values) {
        if (envFromBuilder_ == null) {
          ensureEnvFromIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, envFrom_);
          onChanged();
        } else {
          envFromBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder clearEnvFrom() {
        if (envFromBuilder_ == null) {
          envFrom_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          envFromBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public Builder removeEnvFrom(int index) {
        if (envFromBuilder_ == null) {
          ensureEnvFromIsMutable();
          envFrom_.remove(index);
          onChanged();
        } else {
          envFromBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public io.kubernetes.client.proto.V1.EnvFromSource.Builder getEnvFromBuilder(int index) {
        return getEnvFromFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder getEnvFromOrBuilder(int index) {
        if (envFromBuilder_ == null) {
          return envFrom_.get(index);
        } else {
          return envFromBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>
          getEnvFromOrBuilderList() {
        if (envFromBuilder_ != null) {
          return envFromBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(envFrom_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public io.kubernetes.client.proto.V1.EnvFromSource.Builder addEnvFromBuilder() {
        return getEnvFromFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EnvFromSource.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public io.kubernetes.client.proto.V1.EnvFromSource.Builder addEnvFromBuilder(int index) {
        return getEnvFromFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EnvFromSource.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of sources to populate environment variables in the container.
       * The keys defined within a source must be a C_IDENTIFIER. All invalid keys
       * will be reported as an event when the container is starting. When a key exists in multiple
       * sources, the value associated with the last source will take precedence.
       * Values defined by an Env with a duplicate key will take precedence.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvFromSource envFrom = 19;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EnvFromSource.Builder>
          getEnvFromBuilderList() {
        return getEnvFromFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvFromSource,
              io.kubernetes.client.proto.V1.EnvFromSource.Builder,
              io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>
          getEnvFromFieldBuilder() {
        if (envFromBuilder_ == null) {
          envFromBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EnvFromSource,
                  io.kubernetes.client.proto.V1.EnvFromSource.Builder,
                  io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder>(
                  envFrom_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          envFrom_ = null;
        }
        return envFromBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.EnvVar> env_ =
          java.util.Collections.emptyList();

      private void ensureEnvIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          env_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EnvVar>(env_);
          bitField0_ |= 0x00000080;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvVar,
              io.kubernetes.client.proto.V1.EnvVar.Builder,
              io.kubernetes.client.proto.V1.EnvVarOrBuilder>
          envBuilder_;

      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EnvVar> getEnvList() {
        if (envBuilder_ == null) {
          return java.util.Collections.unmodifiableList(env_);
        } else {
          return envBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public int getEnvCount() {
        if (envBuilder_ == null) {
          return env_.size();
        } else {
          return envBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVar getEnv(int index) {
        if (envBuilder_ == null) {
          return env_.get(index);
        } else {
          return envBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder setEnv(int index, io.kubernetes.client.proto.V1.EnvVar value) {
        if (envBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvIsMutable();
          env_.set(index, value);
          onChanged();
        } else {
          envBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder setEnv(
          int index, io.kubernetes.client.proto.V1.EnvVar.Builder builderForValue) {
        if (envBuilder_ == null) {
          ensureEnvIsMutable();
          env_.set(index, builderForValue.build());
          onChanged();
        } else {
          envBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder addEnv(io.kubernetes.client.proto.V1.EnvVar value) {
        if (envBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvIsMutable();
          env_.add(value);
          onChanged();
        } else {
          envBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder addEnv(int index, io.kubernetes.client.proto.V1.EnvVar value) {
        if (envBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureEnvIsMutable();
          env_.add(index, value);
          onChanged();
        } else {
          envBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder addEnv(io.kubernetes.client.proto.V1.EnvVar.Builder builderForValue) {
        if (envBuilder_ == null) {
          ensureEnvIsMutable();
          env_.add(builderForValue.build());
          onChanged();
        } else {
          envBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder addEnv(
          int index, io.kubernetes.client.proto.V1.EnvVar.Builder builderForValue) {
        if (envBuilder_ == null) {
          ensureEnvIsMutable();
          env_.add(index, builderForValue.build());
          onChanged();
        } else {
          envBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder addAllEnv(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EnvVar> values) {
        if (envBuilder_ == null) {
          ensureEnvIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, env_);
          onChanged();
        } else {
          envBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder clearEnv() {
        if (envBuilder_ == null) {
          env_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          envBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public Builder removeEnv(int index) {
        if (envBuilder_ == null) {
          ensureEnvIsMutable();
          env_.remove(index);
          onChanged();
        } else {
          envBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVar.Builder getEnvBuilder(int index) {
        return getEnvFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVarOrBuilder getEnvOrBuilder(int index) {
        if (envBuilder_ == null) {
          return env_.get(index);
        } else {
          return envBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EnvVarOrBuilder>
          getEnvOrBuilderList() {
        if (envBuilder_ != null) {
          return envBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(env_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVar.Builder addEnvBuilder() {
        return getEnvFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EnvVar.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVar.Builder addEnvBuilder(int index) {
        return getEnvFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EnvVar.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of environment variables to set in the container.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EnvVar env = 7;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EnvVar.Builder> getEnvBuilderList() {
        return getEnvFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvVar,
              io.kubernetes.client.proto.V1.EnvVar.Builder,
              io.kubernetes.client.proto.V1.EnvVarOrBuilder>
          getEnvFieldBuilder() {
        if (envBuilder_ == null) {
          envBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EnvVar,
                  io.kubernetes.client.proto.V1.EnvVar.Builder,
                  io.kubernetes.client.proto.V1.EnvVarOrBuilder>(
                  env_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          env_ = null;
        }
        return envBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceRequirements resources_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceRequirements,
              io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
              io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>
          resourcesBuilder_;
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public boolean hasResources() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirements getResources() {
        if (resourcesBuilder_ == null) {
          return resources_ == null
              ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
              : resources_;
        } else {
          return resourcesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public Builder setResources(io.kubernetes.client.proto.V1.ResourceRequirements value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resources_ = value;
          onChanged();
        } else {
          resourcesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public Builder setResources(
          io.kubernetes.client.proto.V1.ResourceRequirements.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          resources_ = builderForValue.build();
          onChanged();
        } else {
          resourcesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public Builder mergeResources(io.kubernetes.client.proto.V1.ResourceRequirements value) {
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && resources_ != null
              && resources_
                  != io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()) {
            resources_ =
                io.kubernetes.client.proto.V1.ResourceRequirements.newBuilder(resources_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            resources_ = value;
          }
          onChanged();
        } else {
          resourcesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = null;
          onChanged();
        } else {
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirements.Builder getResourcesBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getResourcesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilder();
        } else {
          return resources_ == null
              ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
              : resources_;
        }
      }
      /**
       *
       *
       * <pre>
       * Compute Resources required by this container.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceRequirements,
              io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
              io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceRequirements,
                  io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
                  io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>(
                  getResources(), getParentForChildren(), isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.VolumeMount> volumeMounts_ =
          java.util.Collections.emptyList();

      private void ensureVolumeMountsIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          volumeMounts_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeMount>(volumeMounts_);
          bitField0_ |= 0x00000200;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeMount,
              io.kubernetes.client.proto.V1.VolumeMount.Builder,
              io.kubernetes.client.proto.V1.VolumeMountOrBuilder>
          volumeMountsBuilder_;

      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeMount> getVolumeMountsList() {
        if (volumeMountsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(volumeMounts_);
        } else {
          return volumeMountsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public int getVolumeMountsCount() {
        if (volumeMountsBuilder_ == null) {
          return volumeMounts_.size();
        } else {
          return volumeMountsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeMount getVolumeMounts(int index) {
        if (volumeMountsBuilder_ == null) {
          return volumeMounts_.get(index);
        } else {
          return volumeMountsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder setVolumeMounts(int index, io.kubernetes.client.proto.V1.VolumeMount value) {
        if (volumeMountsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeMountsIsMutable();
          volumeMounts_.set(index, value);
          onChanged();
        } else {
          volumeMountsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder setVolumeMounts(
          int index, io.kubernetes.client.proto.V1.VolumeMount.Builder builderForValue) {
        if (volumeMountsBuilder_ == null) {
          ensureVolumeMountsIsMutable();
          volumeMounts_.set(index, builderForValue.build());
          onChanged();
        } else {
          volumeMountsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder addVolumeMounts(io.kubernetes.client.proto.V1.VolumeMount value) {
        if (volumeMountsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeMountsIsMutable();
          volumeMounts_.add(value);
          onChanged();
        } else {
          volumeMountsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder addVolumeMounts(int index, io.kubernetes.client.proto.V1.VolumeMount value) {
        if (volumeMountsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeMountsIsMutable();
          volumeMounts_.add(index, value);
          onChanged();
        } else {
          volumeMountsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder addVolumeMounts(
          io.kubernetes.client.proto.V1.VolumeMount.Builder builderForValue) {
        if (volumeMountsBuilder_ == null) {
          ensureVolumeMountsIsMutable();
          volumeMounts_.add(builderForValue.build());
          onChanged();
        } else {
          volumeMountsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder addVolumeMounts(
          int index, io.kubernetes.client.proto.V1.VolumeMount.Builder builderForValue) {
        if (volumeMountsBuilder_ == null) {
          ensureVolumeMountsIsMutable();
          volumeMounts_.add(index, builderForValue.build());
          onChanged();
        } else {
          volumeMountsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder addAllVolumeMounts(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.VolumeMount> values) {
        if (volumeMountsBuilder_ == null) {
          ensureVolumeMountsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, volumeMounts_);
          onChanged();
        } else {
          volumeMountsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder clearVolumeMounts() {
        if (volumeMountsBuilder_ == null) {
          volumeMounts_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          volumeMountsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public Builder removeVolumeMounts(int index) {
        if (volumeMountsBuilder_ == null) {
          ensureVolumeMountsIsMutable();
          volumeMounts_.remove(index);
          onChanged();
        } else {
          volumeMountsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeMount.Builder getVolumeMountsBuilder(int index) {
        return getVolumeMountsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeMountOrBuilder getVolumeMountsOrBuilder(
          int index) {
        if (volumeMountsBuilder_ == null) {
          return volumeMounts_.get(index);
        } else {
          return volumeMountsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeMountOrBuilder>
          getVolumeMountsOrBuilderList() {
        if (volumeMountsBuilder_ != null) {
          return volumeMountsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(volumeMounts_);
        }
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeMount.Builder addVolumeMountsBuilder() {
        return getVolumeMountsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.VolumeMount.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeMount.Builder addVolumeMountsBuilder(int index) {
        return getVolumeMountsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.VolumeMount.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Pod volumes to mount into the container's filesystem.
       * Cannot be updated.
       * +optional
       * +patchMergeKey=mountPath
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeMount volumeMounts = 9;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeMount.Builder>
          getVolumeMountsBuilderList() {
        return getVolumeMountsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeMount,
              io.kubernetes.client.proto.V1.VolumeMount.Builder,
              io.kubernetes.client.proto.V1.VolumeMountOrBuilder>
          getVolumeMountsFieldBuilder() {
        if (volumeMountsBuilder_ == null) {
          volumeMountsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VolumeMount,
                  io.kubernetes.client.proto.V1.VolumeMount.Builder,
                  io.kubernetes.client.proto.V1.VolumeMountOrBuilder>(
                  volumeMounts_,
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          volumeMounts_ = null;
        }
        return volumeMountsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.VolumeDevice> volumeDevices_ =
          java.util.Collections.emptyList();

      private void ensureVolumeDevicesIsMutable() {
        if (!((bitField0_ & 0x00000400) == 0x00000400)) {
          volumeDevices_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeDevice>(volumeDevices_);
          bitField0_ |= 0x00000400;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeDevice,
              io.kubernetes.client.proto.V1.VolumeDevice.Builder,
              io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>
          volumeDevicesBuilder_;

      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeDevice> getVolumeDevicesList() {
        if (volumeDevicesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(volumeDevices_);
        } else {
          return volumeDevicesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public int getVolumeDevicesCount() {
        if (volumeDevicesBuilder_ == null) {
          return volumeDevices_.size();
        } else {
          return volumeDevicesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeDevice getVolumeDevices(int index) {
        if (volumeDevicesBuilder_ == null) {
          return volumeDevices_.get(index);
        } else {
          return volumeDevicesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder setVolumeDevices(int index, io.kubernetes.client.proto.V1.VolumeDevice value) {
        if (volumeDevicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeDevicesIsMutable();
          volumeDevices_.set(index, value);
          onChanged();
        } else {
          volumeDevicesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder setVolumeDevices(
          int index, io.kubernetes.client.proto.V1.VolumeDevice.Builder builderForValue) {
        if (volumeDevicesBuilder_ == null) {
          ensureVolumeDevicesIsMutable();
          volumeDevices_.set(index, builderForValue.build());
          onChanged();
        } else {
          volumeDevicesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder addVolumeDevices(io.kubernetes.client.proto.V1.VolumeDevice value) {
        if (volumeDevicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeDevicesIsMutable();
          volumeDevices_.add(value);
          onChanged();
        } else {
          volumeDevicesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder addVolumeDevices(int index, io.kubernetes.client.proto.V1.VolumeDevice value) {
        if (volumeDevicesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumeDevicesIsMutable();
          volumeDevices_.add(index, value);
          onChanged();
        } else {
          volumeDevicesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder addVolumeDevices(
          io.kubernetes.client.proto.V1.VolumeDevice.Builder builderForValue) {
        if (volumeDevicesBuilder_ == null) {
          ensureVolumeDevicesIsMutable();
          volumeDevices_.add(builderForValue.build());
          onChanged();
        } else {
          volumeDevicesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder addVolumeDevices(
          int index, io.kubernetes.client.proto.V1.VolumeDevice.Builder builderForValue) {
        if (volumeDevicesBuilder_ == null) {
          ensureVolumeDevicesIsMutable();
          volumeDevices_.add(index, builderForValue.build());
          onChanged();
        } else {
          volumeDevicesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder addAllVolumeDevices(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.VolumeDevice> values) {
        if (volumeDevicesBuilder_ == null) {
          ensureVolumeDevicesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, volumeDevices_);
          onChanged();
        } else {
          volumeDevicesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder clearVolumeDevices() {
        if (volumeDevicesBuilder_ == null) {
          volumeDevices_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000400);
          onChanged();
        } else {
          volumeDevicesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public Builder removeVolumeDevices(int index) {
        if (volumeDevicesBuilder_ == null) {
          ensureVolumeDevicesIsMutable();
          volumeDevices_.remove(index);
          onChanged();
        } else {
          volumeDevicesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeDevice.Builder getVolumeDevicesBuilder(int index) {
        return getVolumeDevicesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder getVolumeDevicesOrBuilder(
          int index) {
        if (volumeDevicesBuilder_ == null) {
          return volumeDevices_.get(index);
        } else {
          return volumeDevicesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>
          getVolumeDevicesOrBuilderList() {
        if (volumeDevicesBuilder_ != null) {
          return volumeDevicesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(volumeDevices_);
        }
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeDevice.Builder addVolumeDevicesBuilder() {
        return getVolumeDevicesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.VolumeDevice.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeDevice.Builder addVolumeDevicesBuilder(int index) {
        return getVolumeDevicesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.VolumeDevice.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * volumeDevices is the list of block devices to be used by the container.
       * This is a beta feature.
       * +patchMergeKey=devicePath
       * +patchStrategy=merge
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeDevice volumeDevices = 21;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeDevice.Builder>
          getVolumeDevicesBuilderList() {
        return getVolumeDevicesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeDevice,
              io.kubernetes.client.proto.V1.VolumeDevice.Builder,
              io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>
          getVolumeDevicesFieldBuilder() {
        if (volumeDevicesBuilder_ == null) {
          volumeDevicesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VolumeDevice,
                  io.kubernetes.client.proto.V1.VolumeDevice.Builder,
                  io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder>(
                  volumeDevices_,
                  ((bitField0_ & 0x00000400) == 0x00000400),
                  getParentForChildren(),
                  isClean());
          volumeDevices_ = null;
        }
        return volumeDevicesBuilder_;
      }

      private io.kubernetes.client.proto.V1.Probe livenessProbe_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Probe,
              io.kubernetes.client.proto.V1.Probe.Builder,
              io.kubernetes.client.proto.V1.ProbeOrBuilder>
          livenessProbeBuilder_;
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public boolean hasLivenessProbe() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public io.kubernetes.client.proto.V1.Probe getLivenessProbe() {
        if (livenessProbeBuilder_ == null) {
          return livenessProbe_ == null
              ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
              : livenessProbe_;
        } else {
          return livenessProbeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public Builder setLivenessProbe(io.kubernetes.client.proto.V1.Probe value) {
        if (livenessProbeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          livenessProbe_ = value;
          onChanged();
        } else {
          livenessProbeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public Builder setLivenessProbe(io.kubernetes.client.proto.V1.Probe.Builder builderForValue) {
        if (livenessProbeBuilder_ == null) {
          livenessProbe_ = builderForValue.build();
          onChanged();
        } else {
          livenessProbeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public Builder mergeLivenessProbe(io.kubernetes.client.proto.V1.Probe value) {
        if (livenessProbeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800)
              && livenessProbe_ != null
              && livenessProbe_ != io.kubernetes.client.proto.V1.Probe.getDefaultInstance()) {
            livenessProbe_ =
                io.kubernetes.client.proto.V1.Probe.newBuilder(livenessProbe_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            livenessProbe_ = value;
          }
          onChanged();
        } else {
          livenessProbeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public Builder clearLivenessProbe() {
        if (livenessProbeBuilder_ == null) {
          livenessProbe_ = null;
          onChanged();
        } else {
          livenessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public io.kubernetes.client.proto.V1.Probe.Builder getLivenessProbeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getLivenessProbeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ProbeOrBuilder getLivenessProbeOrBuilder() {
        if (livenessProbeBuilder_ != null) {
          return livenessProbeBuilder_.getMessageOrBuilder();
        } else {
          return livenessProbe_ == null
              ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
              : livenessProbe_;
        }
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container liveness.
       * Container will be restarted if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe livenessProbe = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Probe,
              io.kubernetes.client.proto.V1.Probe.Builder,
              io.kubernetes.client.proto.V1.ProbeOrBuilder>
          getLivenessProbeFieldBuilder() {
        if (livenessProbeBuilder_ == null) {
          livenessProbeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Probe,
                  io.kubernetes.client.proto.V1.Probe.Builder,
                  io.kubernetes.client.proto.V1.ProbeOrBuilder>(
                  getLivenessProbe(), getParentForChildren(), isClean());
          livenessProbe_ = null;
        }
        return livenessProbeBuilder_;
      }

      private io.kubernetes.client.proto.V1.Probe readinessProbe_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Probe,
              io.kubernetes.client.proto.V1.Probe.Builder,
              io.kubernetes.client.proto.V1.ProbeOrBuilder>
          readinessProbeBuilder_;
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public boolean hasReadinessProbe() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public io.kubernetes.client.proto.V1.Probe getReadinessProbe() {
        if (readinessProbeBuilder_ == null) {
          return readinessProbe_ == null
              ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
              : readinessProbe_;
        } else {
          return readinessProbeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public Builder setReadinessProbe(io.kubernetes.client.proto.V1.Probe value) {
        if (readinessProbeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          readinessProbe_ = value;
          onChanged();
        } else {
          readinessProbeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public Builder setReadinessProbe(
          io.kubernetes.client.proto.V1.Probe.Builder builderForValue) {
        if (readinessProbeBuilder_ == null) {
          readinessProbe_ = builderForValue.build();
          onChanged();
        } else {
          readinessProbeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public Builder mergeReadinessProbe(io.kubernetes.client.proto.V1.Probe value) {
        if (readinessProbeBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && readinessProbe_ != null
              && readinessProbe_ != io.kubernetes.client.proto.V1.Probe.getDefaultInstance()) {
            readinessProbe_ =
                io.kubernetes.client.proto.V1.Probe.newBuilder(readinessProbe_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            readinessProbe_ = value;
          }
          onChanged();
        } else {
          readinessProbeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public Builder clearReadinessProbe() {
        if (readinessProbeBuilder_ == null) {
          readinessProbe_ = null;
          onChanged();
        } else {
          readinessProbeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public io.kubernetes.client.proto.V1.Probe.Builder getReadinessProbeBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getReadinessProbeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      public io.kubernetes.client.proto.V1.ProbeOrBuilder getReadinessProbeOrBuilder() {
        if (readinessProbeBuilder_ != null) {
          return readinessProbeBuilder_.getMessageOrBuilder();
        } else {
          return readinessProbe_ == null
              ? io.kubernetes.client.proto.V1.Probe.getDefaultInstance()
              : readinessProbe_;
        }
      }
      /**
       *
       *
       * <pre>
       * Periodic probe of container service readiness.
       * Container will be removed from service endpoints if the probe fails.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Probe readinessProbe = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Probe,
              io.kubernetes.client.proto.V1.Probe.Builder,
              io.kubernetes.client.proto.V1.ProbeOrBuilder>
          getReadinessProbeFieldBuilder() {
        if (readinessProbeBuilder_ == null) {
          readinessProbeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Probe,
                  io.kubernetes.client.proto.V1.Probe.Builder,
                  io.kubernetes.client.proto.V1.ProbeOrBuilder>(
                  getReadinessProbe(), getParentForChildren(), isClean());
          readinessProbe_ = null;
        }
        return readinessProbeBuilder_;
      }

      private io.kubernetes.client.proto.V1.Lifecycle lifecycle_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Lifecycle,
              io.kubernetes.client.proto.V1.Lifecycle.Builder,
              io.kubernetes.client.proto.V1.LifecycleOrBuilder>
          lifecycleBuilder_;
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public boolean hasLifecycle() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public io.kubernetes.client.proto.V1.Lifecycle getLifecycle() {
        if (lifecycleBuilder_ == null) {
          return lifecycle_ == null
              ? io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()
              : lifecycle_;
        } else {
          return lifecycleBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public Builder setLifecycle(io.kubernetes.client.proto.V1.Lifecycle value) {
        if (lifecycleBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lifecycle_ = value;
          onChanged();
        } else {
          lifecycleBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public Builder setLifecycle(io.kubernetes.client.proto.V1.Lifecycle.Builder builderForValue) {
        if (lifecycleBuilder_ == null) {
          lifecycle_ = builderForValue.build();
          onChanged();
        } else {
          lifecycleBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public Builder mergeLifecycle(io.kubernetes.client.proto.V1.Lifecycle value) {
        if (lifecycleBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)
              && lifecycle_ != null
              && lifecycle_ != io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()) {
            lifecycle_ =
                io.kubernetes.client.proto.V1.Lifecycle.newBuilder(lifecycle_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lifecycle_ = value;
          }
          onChanged();
        } else {
          lifecycleBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public Builder clearLifecycle() {
        if (lifecycleBuilder_ == null) {
          lifecycle_ = null;
          onChanged();
        } else {
          lifecycleBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public io.kubernetes.client.proto.V1.Lifecycle.Builder getLifecycleBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getLifecycleFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      public io.kubernetes.client.proto.V1.LifecycleOrBuilder getLifecycleOrBuilder() {
        if (lifecycleBuilder_ != null) {
          return lifecycleBuilder_.getMessageOrBuilder();
        } else {
          return lifecycle_ == null
              ? io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()
              : lifecycle_;
        }
      }
      /**
       *
       *
       * <pre>
       * Actions that the management system should take in response to container lifecycle events.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Lifecycle lifecycle = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Lifecycle,
              io.kubernetes.client.proto.V1.Lifecycle.Builder,
              io.kubernetes.client.proto.V1.LifecycleOrBuilder>
          getLifecycleFieldBuilder() {
        if (lifecycleBuilder_ == null) {
          lifecycleBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Lifecycle,
                  io.kubernetes.client.proto.V1.Lifecycle.Builder,
                  io.kubernetes.client.proto.V1.LifecycleOrBuilder>(
                  getLifecycle(), getParentForChildren(), isClean());
          lifecycle_ = null;
        }
        return lifecycleBuilder_;
      }

      private java.lang.Object terminationMessagePath_ = "";
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public boolean hasTerminationMessagePath() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public java.lang.String getTerminationMessagePath() {
        java.lang.Object ref = terminationMessagePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            terminationMessagePath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public com.google.protobuf.ByteString getTerminationMessagePathBytes() {
        java.lang.Object ref = terminationMessagePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          terminationMessagePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public Builder setTerminationMessagePath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        terminationMessagePath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public Builder clearTerminationMessagePath() {
        bitField0_ = (bitField0_ & ~0x00004000);
        terminationMessagePath_ = getDefaultInstance().getTerminationMessagePath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Path at which the file to which the container's termination message
       * will be written is mounted into the container's filesystem.
       * Message written is intended to be brief final status, such as an assertion failure message.
       * Will be truncated by the node if greater than 4096 bytes. The total message length across
       * all containers will be limited to 12kb.
       * Defaults to /dev/termination-log.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePath = 13;</code>
       */
      public Builder setTerminationMessagePathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        terminationMessagePath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object terminationMessagePolicy_ = "";
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public boolean hasTerminationMessagePolicy() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public java.lang.String getTerminationMessagePolicy() {
        java.lang.Object ref = terminationMessagePolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            terminationMessagePolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public com.google.protobuf.ByteString getTerminationMessagePolicyBytes() {
        java.lang.Object ref = terminationMessagePolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          terminationMessagePolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public Builder setTerminationMessagePolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00008000;
        terminationMessagePolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public Builder clearTerminationMessagePolicy() {
        bitField0_ = (bitField0_ & ~0x00008000);
        terminationMessagePolicy_ = getDefaultInstance().getTerminationMessagePolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicate how the termination message should be populated. File will use the contents of
       * terminationMessagePath to populate the container status message on both success and failure.
       * FallbackToLogsOnError will use the last chunk of container log output if the termination
       * message file is empty and the container exited with an error.
       * The log output is limited to 2048 bytes or 80 lines, whichever is smaller.
       * Defaults to File.
       * Cannot be updated.
       * +optional
       * </pre>
       *
       * <code>optional string terminationMessagePolicy = 20;</code>
       */
      public Builder setTerminationMessagePolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00008000;
        terminationMessagePolicy_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object imagePullPolicy_ = "";
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public boolean hasImagePullPolicy() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public java.lang.String getImagePullPolicy() {
        java.lang.Object ref = imagePullPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            imagePullPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public com.google.protobuf.ByteString getImagePullPolicyBytes() {
        java.lang.Object ref = imagePullPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          imagePullPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public Builder setImagePullPolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00010000;
        imagePullPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public Builder clearImagePullPolicy() {
        bitField0_ = (bitField0_ & ~0x00010000);
        imagePullPolicy_ = getDefaultInstance().getImagePullPolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Image pull policy.
       * One of Always, Never, IfNotPresent.
       * Defaults to Always if :latest tag is specified, or IfNotPresent otherwise.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/containers/images#updating-images
       * +optional
       * </pre>
       *
       * <code>optional string imagePullPolicy = 14;</code>
       */
      public Builder setImagePullPolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00010000;
        imagePullPolicy_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecurityContext securityContext_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecurityContext,
              io.kubernetes.client.proto.V1.SecurityContext.Builder,
              io.kubernetes.client.proto.V1.SecurityContextOrBuilder>
          securityContextBuilder_;
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public boolean hasSecurityContext() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public io.kubernetes.client.proto.V1.SecurityContext getSecurityContext() {
        if (securityContextBuilder_ == null) {
          return securityContext_ == null
              ? io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance()
              : securityContext_;
        } else {
          return securityContextBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public Builder setSecurityContext(io.kubernetes.client.proto.V1.SecurityContext value) {
        if (securityContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          securityContext_ = value;
          onChanged();
        } else {
          securityContextBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public Builder setSecurityContext(
          io.kubernetes.client.proto.V1.SecurityContext.Builder builderForValue) {
        if (securityContextBuilder_ == null) {
          securityContext_ = builderForValue.build();
          onChanged();
        } else {
          securityContextBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public Builder mergeSecurityContext(io.kubernetes.client.proto.V1.SecurityContext value) {
        if (securityContextBuilder_ == null) {
          if (((bitField0_ & 0x00020000) == 0x00020000)
              && securityContext_ != null
              && securityContext_
                  != io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance()) {
            securityContext_ =
                io.kubernetes.client.proto.V1.SecurityContext.newBuilder(securityContext_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            securityContext_ = value;
          }
          onChanged();
        } else {
          securityContextBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public Builder clearSecurityContext() {
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
          onChanged();
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public io.kubernetes.client.proto.V1.SecurityContext.Builder getSecurityContextBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getSecurityContextFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      public io.kubernetes.client.proto.V1.SecurityContextOrBuilder getSecurityContextOrBuilder() {
        if (securityContextBuilder_ != null) {
          return securityContextBuilder_.getMessageOrBuilder();
        } else {
          return securityContext_ == null
              ? io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance()
              : securityContext_;
        }
      }
      /**
       *
       *
       * <pre>
       * Security options the pod should run with.
       * More info: https://kubernetes.io/docs/concepts/policy/security-context/
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecurityContext securityContext = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecurityContext,
              io.kubernetes.client.proto.V1.SecurityContext.Builder,
              io.kubernetes.client.proto.V1.SecurityContextOrBuilder>
          getSecurityContextFieldBuilder() {
        if (securityContextBuilder_ == null) {
          securityContextBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecurityContext,
                  io.kubernetes.client.proto.V1.SecurityContext.Builder,
                  io.kubernetes.client.proto.V1.SecurityContextOrBuilder>(
                  getSecurityContext(), getParentForChildren(), isClean());
          securityContext_ = null;
        }
        return securityContextBuilder_;
      }

      private boolean stdin_;
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a buffer for stdin in the container runtime. If this
       * is not set, reads from stdin in the container will always result in EOF.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 16;</code>
       */
      public boolean hasStdin() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a buffer for stdin in the container runtime. If this
       * is not set, reads from stdin in the container will always result in EOF.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 16;</code>
       */
      public boolean getStdin() {
        return stdin_;
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a buffer for stdin in the container runtime. If this
       * is not set, reads from stdin in the container will always result in EOF.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 16;</code>
       */
      public Builder setStdin(boolean value) {
        bitField0_ |= 0x00040000;
        stdin_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a buffer for stdin in the container runtime. If this
       * is not set, reads from stdin in the container will always result in EOF.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 16;</code>
       */
      public Builder clearStdin() {
        bitField0_ = (bitField0_ & ~0x00040000);
        stdin_ = false;
        onChanged();
        return this;
      }

      private boolean stdinOnce_;
      /**
       *
       *
       * <pre>
       * Whether the container runtime should close the stdin channel after it has been opened by
       * a single attach. When stdin is true the stdin stream will remain open across multiple attach
       * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
       * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
       * at which time stdin is closed and remains closed until the container is restarted. If this
       * flag is false, a container processes that reads from stdin will never receive an EOF.
       * Default is false
       * +optional
       * </pre>
       *
       * <code>optional bool stdinOnce = 17;</code>
       */
      public boolean hasStdinOnce() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       *
       *
       * <pre>
       * Whether the container runtime should close the stdin channel after it has been opened by
       * a single attach. When stdin is true the stdin stream will remain open across multiple attach
       * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
       * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
       * at which time stdin is closed and remains closed until the container is restarted. If this
       * flag is false, a container processes that reads from stdin will never receive an EOF.
       * Default is false
       * +optional
       * </pre>
       *
       * <code>optional bool stdinOnce = 17;</code>
       */
      public boolean getStdinOnce() {
        return stdinOnce_;
      }
      /**
       *
       *
       * <pre>
       * Whether the container runtime should close the stdin channel after it has been opened by
       * a single attach. When stdin is true the stdin stream will remain open across multiple attach
       * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
       * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
       * at which time stdin is closed and remains closed until the container is restarted. If this
       * flag is false, a container processes that reads from stdin will never receive an EOF.
       * Default is false
       * +optional
       * </pre>
       *
       * <code>optional bool stdinOnce = 17;</code>
       */
      public Builder setStdinOnce(boolean value) {
        bitField0_ |= 0x00080000;
        stdinOnce_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Whether the container runtime should close the stdin channel after it has been opened by
       * a single attach. When stdin is true the stdin stream will remain open across multiple attach
       * sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the
       * first client attaches to stdin, and then remains open and accepts data until the client disconnects,
       * at which time stdin is closed and remains closed until the container is restarted. If this
       * flag is false, a container processes that reads from stdin will never receive an EOF.
       * Default is false
       * +optional
       * </pre>
       *
       * <code>optional bool stdinOnce = 17;</code>
       */
      public Builder clearStdinOnce() {
        bitField0_ = (bitField0_ & ~0x00080000);
        stdinOnce_ = false;
        onChanged();
        return this;
      }

      private boolean tty_;
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 18;</code>
       */
      public boolean hasTty() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 18;</code>
       */
      public boolean getTty() {
        return tty_;
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 18;</code>
       */
      public Builder setTty(boolean value) {
        bitField0_ |= 0x00100000;
        tty_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Whether this container should allocate a TTY for itself, also requires 'stdin' to be true.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 18;</code>
       */
      public Builder clearTty() {
        bitField0_ = (bitField0_ & ~0x00100000);
        tty_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Container)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Container)
    private static final io.kubernetes.client.proto.V1.Container DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Container();
    }

    public static io.kubernetes.client.proto.V1.Container getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Container> PARSER =
        new com.google.protobuf.AbstractParser<Container>() {
          @java.lang.Override
          public Container parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Container(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Container> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Container> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Container getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerImageOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerImage)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    java.util.List<java.lang.String> getNamesList();
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    int getNamesCount();
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    java.lang.String getNames(int index);
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    com.google.protobuf.ByteString getNamesBytes(int index);

    /**
     *
     *
     * <pre>
     * The size of the image in bytes.
     * +optional
     * </pre>
     *
     * <code>optional int64 sizeBytes = 2;</code>
     */
    boolean hasSizeBytes();
    /**
     *
     *
     * <pre>
     * The size of the image in bytes.
     * +optional
     * </pre>
     *
     * <code>optional int64 sizeBytes = 2;</code>
     */
    long getSizeBytes();
  }
  /**
   *
   *
   * <pre>
   * Describe a container image
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerImage}
   */
  public static final class ContainerImage extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerImage)
      ContainerImageOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerImage.newBuilder() to construct.
    private ContainerImage(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerImage() {
      names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      sizeBytes_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerImage(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  names_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                names_.add(bs);
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000001;
                sizeBytes_ = input.readInt64();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          names_ = names_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerImage_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerImage_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerImage.class,
              io.kubernetes.client.proto.V1.ContainerImage.Builder.class);
    }

    private int bitField0_;
    public static final int NAMES_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList names_;
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getNamesList() {
      return names_;
    }
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    public int getNamesCount() {
      return names_.size();
    }
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    public java.lang.String getNames(int index) {
      return names_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Names by which this image is known.
     * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
     * </pre>
     *
     * <code>repeated string names = 1;</code>
     */
    public com.google.protobuf.ByteString getNamesBytes(int index) {
      return names_.getByteString(index);
    }

    public static final int SIZEBYTES_FIELD_NUMBER = 2;
    private long sizeBytes_;
    /**
     *
     *
     * <pre>
     * The size of the image in bytes.
     * +optional
     * </pre>
     *
     * <code>optional int64 sizeBytes = 2;</code>
     */
    public boolean hasSizeBytes() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The size of the image in bytes.
     * +optional
     * </pre>
     *
     * <code>optional int64 sizeBytes = 2;</code>
     */
    public long getSizeBytes() {
      return sizeBytes_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < names_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, names_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt64(2, sizeBytes_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < names_.size(); i++) {
          dataSize += computeStringSizeNoTag(names_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getNamesList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, sizeBytes_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerImage)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerImage other =
          (io.kubernetes.client.proto.V1.ContainerImage) obj;

      boolean result = true;
      result = result && getNamesList().equals(other.getNamesList());
      result = result && (hasSizeBytes() == other.hasSizeBytes());
      if (hasSizeBytes()) {
        result = result && (getSizeBytes() == other.getSizeBytes());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getNamesCount() > 0) {
        hash = (37 * hash) + NAMES_FIELD_NUMBER;
        hash = (53 * hash) + getNamesList().hashCode();
      }
      if (hasSizeBytes()) {
        hash = (37 * hash) + SIZEBYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getSizeBytes());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerImage parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ContainerImage prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Describe a container image
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerImage}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerImage)
        io.kubernetes.client.proto.V1.ContainerImageOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerImage_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerImage_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerImage.class,
                io.kubernetes.client.proto.V1.ContainerImage.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerImage.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        sizeBytes_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerImage_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerImage getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerImage.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerImage build() {
        io.kubernetes.client.proto.V1.ContainerImage result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerImage buildPartial() {
        io.kubernetes.client.proto.V1.ContainerImage result =
            new io.kubernetes.client.proto.V1.ContainerImage(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          names_ = names_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.names_ = names_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sizeBytes_ = sizeBytes_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerImage) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerImage) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerImage other) {
        if (other == io.kubernetes.client.proto.V1.ContainerImage.getDefaultInstance()) return this;
        if (!other.names_.isEmpty()) {
          if (names_.isEmpty()) {
            names_ = other.names_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureNamesIsMutable();
            names_.addAll(other.names_);
          }
          onChanged();
        }
        if (other.hasSizeBytes()) {
          setSizeBytes(other.getSizeBytes());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerImage parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ContainerImage) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList names_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureNamesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          names_ = new com.google.protobuf.LazyStringArrayList(names_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getNamesList() {
        return names_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public int getNamesCount() {
        return names_.size();
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public java.lang.String getNames(int index) {
        return names_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public com.google.protobuf.ByteString getNamesBytes(int index) {
        return names_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public Builder setNames(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamesIsMutable();
        names_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public Builder addNames(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamesIsMutable();
        names_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public Builder addAllNames(java.lang.Iterable<java.lang.String> values) {
        ensureNamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, names_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public Builder clearNames() {
        names_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Names by which this image is known.
       * e.g. ["k8s.gcr.io/hyperkube:v1.0.7", "dockerhub.io/google_containers/hyperkube:v1.0.7"]
       * </pre>
       *
       * <code>repeated string names = 1;</code>
       */
      public Builder addNamesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamesIsMutable();
        names_.add(value);
        onChanged();
        return this;
      }

      private long sizeBytes_;
      /**
       *
       *
       * <pre>
       * The size of the image in bytes.
       * +optional
       * </pre>
       *
       * <code>optional int64 sizeBytes = 2;</code>
       */
      public boolean hasSizeBytes() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The size of the image in bytes.
       * +optional
       * </pre>
       *
       * <code>optional int64 sizeBytes = 2;</code>
       */
      public long getSizeBytes() {
        return sizeBytes_;
      }
      /**
       *
       *
       * <pre>
       * The size of the image in bytes.
       * +optional
       * </pre>
       *
       * <code>optional int64 sizeBytes = 2;</code>
       */
      public Builder setSizeBytes(long value) {
        bitField0_ |= 0x00000002;
        sizeBytes_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The size of the image in bytes.
       * +optional
       * </pre>
       *
       * <code>optional int64 sizeBytes = 2;</code>
       */
      public Builder clearSizeBytes() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sizeBytes_ = 0L;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerImage)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerImage)
    private static final io.kubernetes.client.proto.V1.ContainerImage DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerImage();
    }

    public static io.kubernetes.client.proto.V1.ContainerImage getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerImage> PARSER =
        new com.google.protobuf.AbstractParser<ContainerImage>() {
          @java.lang.Override
          public ContainerImage parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerImage(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerImage> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerImage> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerImage getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerPortOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerPort)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Number of port to expose on the host.
     * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
     * If HostNetwork is specified, this must match ContainerPort.
     * Most containers do not need this.
     * +optional
     * </pre>
     *
     * <code>optional int32 hostPort = 2;</code>
     */
    boolean hasHostPort();
    /**
     *
     *
     * <pre>
     * Number of port to expose on the host.
     * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
     * If HostNetwork is specified, this must match ContainerPort.
     * Most containers do not need this.
     * +optional
     * </pre>
     *
     * <code>optional int32 hostPort = 2;</code>
     */
    int getHostPort();

    /**
     *
     *
     * <pre>
     * Number of port to expose on the pod's IP address.
     * This must be a valid port number, 0 &lt; x &lt; 65536.
     * </pre>
     *
     * <code>optional int32 containerPort = 3;</code>
     */
    boolean hasContainerPort();
    /**
     *
     *
     * <pre>
     * Number of port to expose on the pod's IP address.
     * This must be a valid port number, 0 &lt; x &lt; 65536.
     * </pre>
     *
     * <code>optional int32 containerPort = 3;</code>
     */
    int getContainerPort();

    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    boolean hasProtocol();
    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    java.lang.String getProtocol();
    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    com.google.protobuf.ByteString getProtocolBytes();

    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    boolean hasHostIP();
    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    java.lang.String getHostIP();
    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    com.google.protobuf.ByteString getHostIPBytes();
  }
  /**
   *
   *
   * <pre>
   * ContainerPort represents a network port in a single container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerPort}
   */
  public static final class ContainerPort extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerPort)
      ContainerPortOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerPort.newBuilder() to construct.
    private ContainerPort(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerPort() {
      name_ = "";
      hostPort_ = 0;
      containerPort_ = 0;
      protocol_ = "";
      hostIP_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerPort(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                hostPort_ = input.readInt32();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                containerPort_ = input.readInt32();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                protocol_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                hostIP_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerPort_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerPort_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerPort.class,
              io.kubernetes.client.proto.V1.ContainerPort.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
     * named port in a pod must have a unique name. Name for the port that can be
     * referred to by services.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTPORT_FIELD_NUMBER = 2;
    private int hostPort_;
    /**
     *
     *
     * <pre>
     * Number of port to expose on the host.
     * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
     * If HostNetwork is specified, this must match ContainerPort.
     * Most containers do not need this.
     * +optional
     * </pre>
     *
     * <code>optional int32 hostPort = 2;</code>
     */
    public boolean hasHostPort() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Number of port to expose on the host.
     * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
     * If HostNetwork is specified, this must match ContainerPort.
     * Most containers do not need this.
     * +optional
     * </pre>
     *
     * <code>optional int32 hostPort = 2;</code>
     */
    public int getHostPort() {
      return hostPort_;
    }

    public static final int CONTAINERPORT_FIELD_NUMBER = 3;
    private int containerPort_;
    /**
     *
     *
     * <pre>
     * Number of port to expose on the pod's IP address.
     * This must be a valid port number, 0 &lt; x &lt; 65536.
     * </pre>
     *
     * <code>optional int32 containerPort = 3;</code>
     */
    public boolean hasContainerPort() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Number of port to expose on the pod's IP address.
     * This must be a valid port number, 0 &lt; x &lt; 65536.
     * </pre>
     *
     * <code>optional int32 containerPort = 3;</code>
     */
    public int getContainerPort() {
      return containerPort_;
    }

    public static final int PROTOCOL_FIELD_NUMBER = 4;
    private volatile java.lang.Object protocol_;
    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Protocol for port. Must be UDP, TCP, or SCTP.
     * Defaults to "TCP".
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 4;</code>
     */
    public com.google.protobuf.ByteString getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTIP_FIELD_NUMBER = 5;
    private volatile java.lang.Object hostIP_;
    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public boolean hasHostIP() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public java.lang.String getHostIP() {
      java.lang.Object ref = hostIP_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostIP_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * What host IP to bind the external port to.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public com.google.protobuf.ByteString getHostIPBytes() {
      java.lang.Object ref = hostIP_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        hostIP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, hostPort_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, containerPort_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, protocol_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, hostIP_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, hostPort_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, containerPort_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, protocol_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, hostIP_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerPort)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerPort other =
          (io.kubernetes.client.proto.V1.ContainerPort) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasHostPort() == other.hasHostPort());
      if (hasHostPort()) {
        result = result && (getHostPort() == other.getHostPort());
      }
      result = result && (hasContainerPort() == other.hasContainerPort());
      if (hasContainerPort()) {
        result = result && (getContainerPort() == other.getContainerPort());
      }
      result = result && (hasProtocol() == other.hasProtocol());
      if (hasProtocol()) {
        result = result && getProtocol().equals(other.getProtocol());
      }
      result = result && (hasHostIP() == other.hasHostIP());
      if (hasHostIP()) {
        result = result && getHostIP().equals(other.getHostIP());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasHostPort()) {
        hash = (37 * hash) + HOSTPORT_FIELD_NUMBER;
        hash = (53 * hash) + getHostPort();
      }
      if (hasContainerPort()) {
        hash = (37 * hash) + CONTAINERPORT_FIELD_NUMBER;
        hash = (53 * hash) + getContainerPort();
      }
      if (hasProtocol()) {
        hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;
        hash = (53 * hash) + getProtocol().hashCode();
      }
      if (hasHostIP()) {
        hash = (37 * hash) + HOSTIP_FIELD_NUMBER;
        hash = (53 * hash) + getHostIP().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerPort parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ContainerPort prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerPort represents a network port in a single container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerPort}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerPort)
        io.kubernetes.client.proto.V1.ContainerPortOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerPort_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerPort_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerPort.class,
                io.kubernetes.client.proto.V1.ContainerPort.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerPort.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostPort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        containerPort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        hostIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerPort_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerPort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerPort.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerPort build() {
        io.kubernetes.client.proto.V1.ContainerPort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerPort buildPartial() {
        io.kubernetes.client.proto.V1.ContainerPort result =
            new io.kubernetes.client.proto.V1.ContainerPort(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostPort_ = hostPort_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.containerPort_ = containerPort_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.protocol_ = protocol_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hostIP_ = hostIP_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerPort) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerPort) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerPort other) {
        if (other == io.kubernetes.client.proto.V1.ContainerPort.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasHostPort()) {
          setHostPort(other.getHostPort());
        }
        if (other.hasContainerPort()) {
          setContainerPort(other.getContainerPort());
        }
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000008;
          protocol_ = other.protocol_;
          onChanged();
        }
        if (other.hasHostIP()) {
          bitField0_ |= 0x00000010;
          hostIP_ = other.hostIP_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerPort parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ContainerPort) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, this must be an IANA_SVC_NAME and unique within the pod. Each
       * named port in a pod must have a unique name. Name for the port that can be
       * referred to by services.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private int hostPort_;
      /**
       *
       *
       * <pre>
       * Number of port to expose on the host.
       * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
       * If HostNetwork is specified, this must match ContainerPort.
       * Most containers do not need this.
       * +optional
       * </pre>
       *
       * <code>optional int32 hostPort = 2;</code>
       */
      public boolean hasHostPort() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the host.
       * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
       * If HostNetwork is specified, this must match ContainerPort.
       * Most containers do not need this.
       * +optional
       * </pre>
       *
       * <code>optional int32 hostPort = 2;</code>
       */
      public int getHostPort() {
        return hostPort_;
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the host.
       * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
       * If HostNetwork is specified, this must match ContainerPort.
       * Most containers do not need this.
       * +optional
       * </pre>
       *
       * <code>optional int32 hostPort = 2;</code>
       */
      public Builder setHostPort(int value) {
        bitField0_ |= 0x00000002;
        hostPort_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the host.
       * If specified, this must be a valid port number, 0 &lt; x &lt; 65536.
       * If HostNetwork is specified, this must match ContainerPort.
       * Most containers do not need this.
       * +optional
       * </pre>
       *
       * <code>optional int32 hostPort = 2;</code>
       */
      public Builder clearHostPort() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostPort_ = 0;
        onChanged();
        return this;
      }

      private int containerPort_;
      /**
       *
       *
       * <pre>
       * Number of port to expose on the pod's IP address.
       * This must be a valid port number, 0 &lt; x &lt; 65536.
       * </pre>
       *
       * <code>optional int32 containerPort = 3;</code>
       */
      public boolean hasContainerPort() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the pod's IP address.
       * This must be a valid port number, 0 &lt; x &lt; 65536.
       * </pre>
       *
       * <code>optional int32 containerPort = 3;</code>
       */
      public int getContainerPort() {
        return containerPort_;
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the pod's IP address.
       * This must be a valid port number, 0 &lt; x &lt; 65536.
       * </pre>
       *
       * <code>optional int32 containerPort = 3;</code>
       */
      public Builder setContainerPort(int value) {
        bitField0_ |= 0x00000004;
        containerPort_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number of port to expose on the pod's IP address.
       * This must be a valid port number, 0 &lt; x &lt; 65536.
       * </pre>
       *
       * <code>optional int32 containerPort = 3;</code>
       */
      public Builder clearContainerPort() {
        bitField0_ = (bitField0_ & ~0x00000004);
        containerPort_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object protocol_ = "";
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protocol_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public com.google.protobuf.ByteString getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocol(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000008);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Protocol for port. Must be UDP, TCP, or SCTP.
       * Defaults to "TCP".
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 4;</code>
       */
      public Builder setProtocolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        protocol_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hostIP_ = "";
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public boolean hasHostIP() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public java.lang.String getHostIP() {
        java.lang.Object ref = hostIP_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostIP_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public com.google.protobuf.ByteString getHostIPBytes() {
        java.lang.Object ref = hostIP_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          hostIP_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder setHostIP(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        hostIP_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder clearHostIP() {
        bitField0_ = (bitField0_ & ~0x00000010);
        hostIP_ = getDefaultInstance().getHostIP();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What host IP to bind the external port to.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder setHostIPBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        hostIP_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerPort)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerPort)
    private static final io.kubernetes.client.proto.V1.ContainerPort DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerPort();
    }

    public static io.kubernetes.client.proto.V1.ContainerPort getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerPort> PARSER =
        new com.google.protobuf.AbstractParser<ContainerPort>() {
          @java.lang.Override
          public ContainerPort parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerPort(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerPort> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerPort> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerPort getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerStateOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerState)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    boolean hasWaiting();
    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateWaiting getWaiting();
    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder getWaitingOrBuilder();

    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    boolean hasRunning();
    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateRunning getRunning();
    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder getRunningOrBuilder();

    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    boolean hasTerminated();
    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateTerminated getTerminated();
    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder getTerminatedOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ContainerState holds a possible state of container.
   * Only one of its members may be specified.
   * If none of them is specified, the default one is ContainerStateWaiting.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerState}
   */
  public static final class ContainerState extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerState)
      ContainerStateOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerState.newBuilder() to construct.
    private ContainerState(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerState() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerState(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = waiting_.toBuilder();
                }
                waiting_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerStateWaiting.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(waiting_);
                  waiting_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ContainerStateRunning.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = running_.toBuilder();
                }
                running_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerStateRunning.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(running_);
                  running_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = terminated_.toBuilder();
                }
                terminated_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerStateTerminated.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(terminated_);
                  terminated_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerState_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerState_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerState.class,
              io.kubernetes.client.proto.V1.ContainerState.Builder.class);
    }

    private int bitField0_;
    public static final int WAITING_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.ContainerStateWaiting waiting_;
    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    public boolean hasWaiting() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateWaiting getWaiting() {
      return waiting_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance()
          : waiting_;
    }
    /**
     *
     *
     * <pre>
     * Details about a waiting container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder getWaitingOrBuilder() {
      return waiting_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance()
          : waiting_;
    }

    public static final int RUNNING_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ContainerStateRunning running_;
    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    public boolean hasRunning() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateRunning getRunning() {
      return running_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance()
          : running_;
    }
    /**
     *
     *
     * <pre>
     * Details about a running container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder getRunningOrBuilder() {
      return running_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance()
          : running_;
    }

    public static final int TERMINATED_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ContainerStateTerminated terminated_;
    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    public boolean hasTerminated() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateTerminated getTerminated() {
      return terminated_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance()
          : terminated_;
    }
    /**
     *
     *
     * <pre>
     * Details about a terminated container
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder
        getTerminatedOrBuilder() {
      return terminated_ == null
          ? io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance()
          : terminated_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getWaiting());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getRunning());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getTerminated());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getWaiting());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getRunning());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTerminated());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerState)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerState other =
          (io.kubernetes.client.proto.V1.ContainerState) obj;

      boolean result = true;
      result = result && (hasWaiting() == other.hasWaiting());
      if (hasWaiting()) {
        result = result && getWaiting().equals(other.getWaiting());
      }
      result = result && (hasRunning() == other.hasRunning());
      if (hasRunning()) {
        result = result && getRunning().equals(other.getRunning());
      }
      result = result && (hasTerminated() == other.hasTerminated());
      if (hasTerminated()) {
        result = result && getTerminated().equals(other.getTerminated());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasWaiting()) {
        hash = (37 * hash) + WAITING_FIELD_NUMBER;
        hash = (53 * hash) + getWaiting().hashCode();
      }
      if (hasRunning()) {
        hash = (37 * hash) + RUNNING_FIELD_NUMBER;
        hash = (53 * hash) + getRunning().hashCode();
      }
      if (hasTerminated()) {
        hash = (37 * hash) + TERMINATED_FIELD_NUMBER;
        hash = (53 * hash) + getTerminated().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerState parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ContainerState prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerState holds a possible state of container.
     * Only one of its members may be specified.
     * If none of them is specified, the default one is ContainerStateWaiting.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerState}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerState)
        io.kubernetes.client.proto.V1.ContainerStateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerState_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerState_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerState.class,
                io.kubernetes.client.proto.V1.ContainerState.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerState.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getWaitingFieldBuilder();
          getRunningFieldBuilder();
          getTerminatedFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (waitingBuilder_ == null) {
          waiting_ = null;
        } else {
          waitingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (runningBuilder_ == null) {
          running_ = null;
        } else {
          runningBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (terminatedBuilder_ == null) {
          terminated_ = null;
        } else {
          terminatedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerState_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerState getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerState build() {
        io.kubernetes.client.proto.V1.ContainerState result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerState buildPartial() {
        io.kubernetes.client.proto.V1.ContainerState result =
            new io.kubernetes.client.proto.V1.ContainerState(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (waitingBuilder_ == null) {
          result.waiting_ = waiting_;
        } else {
          result.waiting_ = waitingBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (runningBuilder_ == null) {
          result.running_ = running_;
        } else {
          result.running_ = runningBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (terminatedBuilder_ == null) {
          result.terminated_ = terminated_;
        } else {
          result.terminated_ = terminatedBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerState) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerState) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerState other) {
        if (other == io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()) return this;
        if (other.hasWaiting()) {
          mergeWaiting(other.getWaiting());
        }
        if (other.hasRunning()) {
          mergeRunning(other.getRunning());
        }
        if (other.hasTerminated()) {
          mergeTerminated(other.getTerminated());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerState parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ContainerState) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ContainerStateWaiting waiting_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateWaiting,
              io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder,
              io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder>
          waitingBuilder_;
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public boolean hasWaiting() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateWaiting getWaiting() {
        if (waitingBuilder_ == null) {
          return waiting_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance()
              : waiting_;
        } else {
          return waitingBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public Builder setWaiting(io.kubernetes.client.proto.V1.ContainerStateWaiting value) {
        if (waitingBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          waiting_ = value;
          onChanged();
        } else {
          waitingBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public Builder setWaiting(
          io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder builderForValue) {
        if (waitingBuilder_ == null) {
          waiting_ = builderForValue.build();
          onChanged();
        } else {
          waitingBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public Builder mergeWaiting(io.kubernetes.client.proto.V1.ContainerStateWaiting value) {
        if (waitingBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && waiting_ != null
              && waiting_
                  != io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance()) {
            waiting_ =
                io.kubernetes.client.proto.V1.ContainerStateWaiting.newBuilder(waiting_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            waiting_ = value;
          }
          onChanged();
        } else {
          waitingBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public Builder clearWaiting() {
        if (waitingBuilder_ == null) {
          waiting_ = null;
          onChanged();
        } else {
          waitingBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder getWaitingBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getWaitingFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder getWaitingOrBuilder() {
        if (waitingBuilder_ != null) {
          return waitingBuilder_.getMessageOrBuilder();
        } else {
          return waiting_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance()
              : waiting_;
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a waiting container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateWaiting waiting = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateWaiting,
              io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder,
              io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder>
          getWaitingFieldBuilder() {
        if (waitingBuilder_ == null) {
          waitingBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerStateWaiting,
                  io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder,
                  io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder>(
                  getWaiting(), getParentForChildren(), isClean());
          waiting_ = null;
        }
        return waitingBuilder_;
      }

      private io.kubernetes.client.proto.V1.ContainerStateRunning running_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateRunning,
              io.kubernetes.client.proto.V1.ContainerStateRunning.Builder,
              io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder>
          runningBuilder_;
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public boolean hasRunning() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateRunning getRunning() {
        if (runningBuilder_ == null) {
          return running_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance()
              : running_;
        } else {
          return runningBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public Builder setRunning(io.kubernetes.client.proto.V1.ContainerStateRunning value) {
        if (runningBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          running_ = value;
          onChanged();
        } else {
          runningBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public Builder setRunning(
          io.kubernetes.client.proto.V1.ContainerStateRunning.Builder builderForValue) {
        if (runningBuilder_ == null) {
          running_ = builderForValue.build();
          onChanged();
        } else {
          runningBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public Builder mergeRunning(io.kubernetes.client.proto.V1.ContainerStateRunning value) {
        if (runningBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && running_ != null
              && running_
                  != io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance()) {
            running_ =
                io.kubernetes.client.proto.V1.ContainerStateRunning.newBuilder(running_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            running_ = value;
          }
          onChanged();
        } else {
          runningBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public Builder clearRunning() {
        if (runningBuilder_ == null) {
          running_ = null;
          onChanged();
        } else {
          runningBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateRunning.Builder getRunningBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getRunningFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder getRunningOrBuilder() {
        if (runningBuilder_ != null) {
          return runningBuilder_.getMessageOrBuilder();
        } else {
          return running_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance()
              : running_;
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a running container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateRunning running = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateRunning,
              io.kubernetes.client.proto.V1.ContainerStateRunning.Builder,
              io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder>
          getRunningFieldBuilder() {
        if (runningBuilder_ == null) {
          runningBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerStateRunning,
                  io.kubernetes.client.proto.V1.ContainerStateRunning.Builder,
                  io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder>(
                  getRunning(), getParentForChildren(), isClean());
          running_ = null;
        }
        return runningBuilder_;
      }

      private io.kubernetes.client.proto.V1.ContainerStateTerminated terminated_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateTerminated,
              io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder,
              io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder>
          terminatedBuilder_;
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public boolean hasTerminated() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateTerminated getTerminated() {
        if (terminatedBuilder_ == null) {
          return terminated_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance()
              : terminated_;
        } else {
          return terminatedBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public Builder setTerminated(io.kubernetes.client.proto.V1.ContainerStateTerminated value) {
        if (terminatedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          terminated_ = value;
          onChanged();
        } else {
          terminatedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public Builder setTerminated(
          io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder builderForValue) {
        if (terminatedBuilder_ == null) {
          terminated_ = builderForValue.build();
          onChanged();
        } else {
          terminatedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public Builder mergeTerminated(io.kubernetes.client.proto.V1.ContainerStateTerminated value) {
        if (terminatedBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && terminated_ != null
              && terminated_
                  != io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance()) {
            terminated_ =
                io.kubernetes.client.proto.V1.ContainerStateTerminated.newBuilder(terminated_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            terminated_ = value;
          }
          onChanged();
        } else {
          terminatedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public Builder clearTerminated() {
        if (terminatedBuilder_ == null) {
          terminated_ = null;
          onChanged();
        } else {
          terminatedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder getTerminatedBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getTerminatedFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder
          getTerminatedOrBuilder() {
        if (terminatedBuilder_ != null) {
          return terminatedBuilder_.getMessageOrBuilder();
        } else {
          return terminated_ == null
              ? io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance()
              : terminated_;
        }
      }
      /**
       *
       *
       * <pre>
       * Details about a terminated container
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerStateTerminated terminated = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStateTerminated,
              io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder,
              io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder>
          getTerminatedFieldBuilder() {
        if (terminatedBuilder_ == null) {
          terminatedBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerStateTerminated,
                  io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder,
                  io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder>(
                  getTerminated(), getParentForChildren(), isClean());
          terminated_ = null;
        }
        return terminatedBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerState)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerState)
    private static final io.kubernetes.client.proto.V1.ContainerState DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerState();
    }

    public static io.kubernetes.client.proto.V1.ContainerState getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerState> PARSER =
        new com.google.protobuf.AbstractParser<ContainerState>() {
          @java.lang.Override
          public ContainerState parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerState(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerState> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerState> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerState getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerStateRunningOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerStateRunning)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    boolean hasStartedAt();
    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    io.kubernetes.client.proto.Meta.Time getStartedAt();
    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ContainerStateRunning is a running state of a container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerStateRunning}
   */
  public static final class ContainerStateRunning extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerStateRunning)
      ContainerStateRunningOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerStateRunning.newBuilder() to construct.
    private ContainerStateRunning(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerStateRunning() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerStateRunning(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = startedAt_.toBuilder();
                }
                startedAt_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(startedAt_);
                  startedAt_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerStateRunning_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerStateRunning.class,
              io.kubernetes.client.proto.V1.ContainerStateRunning.Builder.class);
    }

    private int bitField0_;
    public static final int STARTEDAT_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.Time startedAt_;
    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    public boolean hasStartedAt() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getStartedAt() {
      return startedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startedAt_;
    }
    /**
     *
     *
     * <pre>
     * Time at which the container was last (re-)started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder() {
      return startedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startedAt_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getStartedAt());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getStartedAt());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerStateRunning)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerStateRunning other =
          (io.kubernetes.client.proto.V1.ContainerStateRunning) obj;

      boolean result = true;
      result = result && (hasStartedAt() == other.hasStartedAt());
      if (hasStartedAt()) {
        result = result && getStartedAt().equals(other.getStartedAt());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStartedAt()) {
        hash = (37 * hash) + STARTEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getStartedAt().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ContainerStateRunning prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerStateRunning is a running state of a container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerStateRunning}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerStateRunning)
        io.kubernetes.client.proto.V1.ContainerStateRunningOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerStateRunning_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerStateRunning.class,
                io.kubernetes.client.proto.V1.ContainerStateRunning.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerStateRunning.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getStartedAtFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (startedAtBuilder_ == null) {
          startedAt_ = null;
        } else {
          startedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateRunning getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateRunning build() {
        io.kubernetes.client.proto.V1.ContainerStateRunning result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateRunning buildPartial() {
        io.kubernetes.client.proto.V1.ContainerStateRunning result =
            new io.kubernetes.client.proto.V1.ContainerStateRunning(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (startedAtBuilder_ == null) {
          result.startedAt_ = startedAt_;
        } else {
          result.startedAt_ = startedAtBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerStateRunning) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerStateRunning) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerStateRunning other) {
        if (other == io.kubernetes.client.proto.V1.ContainerStateRunning.getDefaultInstance())
          return this;
        if (other.hasStartedAt()) {
          mergeStartedAt(other.getStartedAt());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerStateRunning parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ContainerStateRunning) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.Time startedAt_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          startedAtBuilder_;
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public boolean hasStartedAt() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getStartedAt() {
        if (startedAtBuilder_ == null) {
          return startedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startedAt_;
        } else {
          return startedAtBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public Builder setStartedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (startedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startedAt_ = value;
          onChanged();
        } else {
          startedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public Builder setStartedAt(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (startedAtBuilder_ == null) {
          startedAt_ = builderForValue.build();
          onChanged();
        } else {
          startedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public Builder mergeStartedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (startedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && startedAt_ != null
              && startedAt_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            startedAt_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(startedAt_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            startedAt_ = value;
          }
          onChanged();
        } else {
          startedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public Builder clearStartedAt() {
        if (startedAtBuilder_ == null) {
          startedAt_ = null;
          onChanged();
        } else {
          startedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getStartedAtBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getStartedAtFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder() {
        if (startedAtBuilder_ != null) {
          return startedAtBuilder_.getMessageOrBuilder();
        } else {
          return startedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startedAt_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which the container was last (re-)started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getStartedAtFieldBuilder() {
        if (startedAtBuilder_ == null) {
          startedAtBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getStartedAt(), getParentForChildren(), isClean());
          startedAt_ = null;
        }
        return startedAtBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerStateRunning)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerStateRunning)
    private static final io.kubernetes.client.proto.V1.ContainerStateRunning DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerStateRunning();
    }

    public static io.kubernetes.client.proto.V1.ContainerStateRunning getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerStateRunning> PARSER =
        new com.google.protobuf.AbstractParser<ContainerStateRunning>() {
          @java.lang.Override
          public ContainerStateRunning parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerStateRunning(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerStateRunning> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerStateRunning> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerStateRunning getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerStateTerminatedOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerStateTerminated)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Exit status from the last termination of the container
     * </pre>
     *
     * <code>optional int32 exitCode = 1;</code>
     */
    boolean hasExitCode();
    /**
     *
     *
     * <pre>
     * Exit status from the last termination of the container
     * </pre>
     *
     * <code>optional int32 exitCode = 1;</code>
     */
    int getExitCode();

    /**
     *
     *
     * <pre>
     * Signal from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional int32 signal = 2;</code>
     */
    boolean hasSignal();
    /**
     *
     *
     * <pre>
     * Signal from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional int32 signal = 2;</code>
     */
    int getSignal();

    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();

    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    boolean hasStartedAt();
    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    io.kubernetes.client.proto.Meta.Time getStartedAt();
    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder();

    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    boolean hasFinishedAt();
    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    io.kubernetes.client.proto.Meta.Time getFinishedAt();
    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getFinishedAtOrBuilder();

    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    boolean hasContainerID();
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    java.lang.String getContainerID();
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    com.google.protobuf.ByteString getContainerIDBytes();
  }
  /**
   *
   *
   * <pre>
   * ContainerStateTerminated is a terminated state of a container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerStateTerminated}
   */
  public static final class ContainerStateTerminated extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerStateTerminated)
      ContainerStateTerminatedOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerStateTerminated.newBuilder() to construct.
    private ContainerStateTerminated(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerStateTerminated() {
      exitCode_ = 0;
      signal_ = 0;
      reason_ = "";
      message_ = "";
      containerID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerStateTerminated(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                exitCode_ = input.readInt32();
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                signal_ = input.readInt32();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                reason_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                message_ = bs;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = startedAt_.toBuilder();
                }
                startedAt_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(startedAt_);
                  startedAt_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = finishedAt_.toBuilder();
                }
                finishedAt_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(finishedAt_);
                  finishedAt_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                containerID_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerStateTerminated_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerStateTerminated.class,
              io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder.class);
    }

    private int bitField0_;
    public static final int EXITCODE_FIELD_NUMBER = 1;
    private int exitCode_;
    /**
     *
     *
     * <pre>
     * Exit status from the last termination of the container
     * </pre>
     *
     * <code>optional int32 exitCode = 1;</code>
     */
    public boolean hasExitCode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Exit status from the last termination of the container
     * </pre>
     *
     * <code>optional int32 exitCode = 1;</code>
     */
    public int getExitCode() {
      return exitCode_;
    }

    public static final int SIGNAL_FIELD_NUMBER = 2;
    private int signal_;
    /**
     *
     *
     * <pre>
     * Signal from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional int32 signal = 2;</code>
     */
    public boolean hasSignal() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Signal from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional int32 signal = 2;</code>
     */
    public int getSignal() {
      return signal_;
    }

    public static final int REASON_FIELD_NUMBER = 3;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * (brief) reason from the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Message regarding the last termination of the container
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STARTEDAT_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.Meta.Time startedAt_;
    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    public boolean hasStartedAt() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getStartedAt() {
      return startedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startedAt_;
    }
    /**
     *
     *
     * <pre>
     * Time at which previous execution of the container started
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder() {
      return startedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startedAt_;
    }

    public static final int FINISHEDAT_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.Meta.Time finishedAt_;
    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    public boolean hasFinishedAt() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getFinishedAt() {
      return finishedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : finishedAt_;
    }
    /**
     *
     *
     * <pre>
     * Time at which the container last terminated
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getFinishedAtOrBuilder() {
      return finishedAt_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : finishedAt_;
    }

    public static final int CONTAINERID_FIELD_NUMBER = 7;
    private volatile java.lang.Object containerID_;
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    public boolean hasContainerID() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    public java.lang.String getContainerID() {
      java.lang.Object ref = containerID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          containerID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 7;</code>
     */
    public com.google.protobuf.ByteString getContainerIDBytes() {
      java.lang.Object ref = containerID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        containerID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, exitCode_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, signal_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, message_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getStartedAt());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, getFinishedAt());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, containerID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, exitCode_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, signal_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, message_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getStartedAt());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getFinishedAt());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, containerID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerStateTerminated)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerStateTerminated other =
          (io.kubernetes.client.proto.V1.ContainerStateTerminated) obj;

      boolean result = true;
      result = result && (hasExitCode() == other.hasExitCode());
      if (hasExitCode()) {
        result = result && (getExitCode() == other.getExitCode());
      }
      result = result && (hasSignal() == other.hasSignal());
      if (hasSignal()) {
        result = result && (getSignal() == other.getSignal());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && (hasStartedAt() == other.hasStartedAt());
      if (hasStartedAt()) {
        result = result && getStartedAt().equals(other.getStartedAt());
      }
      result = result && (hasFinishedAt() == other.hasFinishedAt());
      if (hasFinishedAt()) {
        result = result && getFinishedAt().equals(other.getFinishedAt());
      }
      result = result && (hasContainerID() == other.hasContainerID());
      if (hasContainerID()) {
        result = result && getContainerID().equals(other.getContainerID());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExitCode()) {
        hash = (37 * hash) + EXITCODE_FIELD_NUMBER;
        hash = (53 * hash) + getExitCode();
      }
      if (hasSignal()) {
        hash = (37 * hash) + SIGNAL_FIELD_NUMBER;
        hash = (53 * hash) + getSignal();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasStartedAt()) {
        hash = (37 * hash) + STARTEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getStartedAt().hashCode();
      }
      if (hasFinishedAt()) {
        hash = (37 * hash) + FINISHEDAT_FIELD_NUMBER;
        hash = (53 * hash) + getFinishedAt().hashCode();
      }
      if (hasContainerID()) {
        hash = (37 * hash) + CONTAINERID_FIELD_NUMBER;
        hash = (53 * hash) + getContainerID().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ContainerStateTerminated prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerStateTerminated is a terminated state of a container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerStateTerminated}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerStateTerminated)
        io.kubernetes.client.proto.V1.ContainerStateTerminatedOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerStateTerminated_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerStateTerminated.class,
                io.kubernetes.client.proto.V1.ContainerStateTerminated.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerStateTerminated.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getStartedAtFieldBuilder();
          getFinishedAtFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        exitCode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        signal_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (startedAtBuilder_ == null) {
          startedAt_ = null;
        } else {
          startedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (finishedAtBuilder_ == null) {
          finishedAt_ = null;
        } else {
          finishedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        containerID_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateTerminated getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateTerminated build() {
        io.kubernetes.client.proto.V1.ContainerStateTerminated result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateTerminated buildPartial() {
        io.kubernetes.client.proto.V1.ContainerStateTerminated result =
            new io.kubernetes.client.proto.V1.ContainerStateTerminated(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.exitCode_ = exitCode_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.signal_ = signal_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (startedAtBuilder_ == null) {
          result.startedAt_ = startedAt_;
        } else {
          result.startedAt_ = startedAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (finishedAtBuilder_ == null) {
          result.finishedAt_ = finishedAt_;
        } else {
          result.finishedAt_ = finishedAtBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.containerID_ = containerID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerStateTerminated) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerStateTerminated) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerStateTerminated other) {
        if (other == io.kubernetes.client.proto.V1.ContainerStateTerminated.getDefaultInstance())
          return this;
        if (other.hasExitCode()) {
          setExitCode(other.getExitCode());
        }
        if (other.hasSignal()) {
          setSignal(other.getSignal());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000004;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000008;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasStartedAt()) {
          mergeStartedAt(other.getStartedAt());
        }
        if (other.hasFinishedAt()) {
          mergeFinishedAt(other.getFinishedAt());
        }
        if (other.hasContainerID()) {
          bitField0_ |= 0x00000040;
          containerID_ = other.containerID_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerStateTerminated parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ContainerStateTerminated) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int exitCode_;
      /**
       *
       *
       * <pre>
       * Exit status from the last termination of the container
       * </pre>
       *
       * <code>optional int32 exitCode = 1;</code>
       */
      public boolean hasExitCode() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Exit status from the last termination of the container
       * </pre>
       *
       * <code>optional int32 exitCode = 1;</code>
       */
      public int getExitCode() {
        return exitCode_;
      }
      /**
       *
       *
       * <pre>
       * Exit status from the last termination of the container
       * </pre>
       *
       * <code>optional int32 exitCode = 1;</code>
       */
      public Builder setExitCode(int value) {
        bitField0_ |= 0x00000001;
        exitCode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Exit status from the last termination of the container
       * </pre>
       *
       * <code>optional int32 exitCode = 1;</code>
       */
      public Builder clearExitCode() {
        bitField0_ = (bitField0_ & ~0x00000001);
        exitCode_ = 0;
        onChanged();
        return this;
      }

      private int signal_;
      /**
       *
       *
       * <pre>
       * Signal from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional int32 signal = 2;</code>
       */
      public boolean hasSignal() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Signal from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional int32 signal = 2;</code>
       */
      public int getSignal() {
        return signal_;
      }
      /**
       *
       *
       * <pre>
       * Signal from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional int32 signal = 2;</code>
       */
      public Builder setSignal(int value) {
        bitField0_ |= 0x00000002;
        signal_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Signal from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional int32 signal = 2;</code>
       */
      public Builder clearSignal() {
        bitField0_ = (bitField0_ & ~0x00000002);
        signal_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason from the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message regarding the last termination of the container
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time startedAt_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          startedAtBuilder_;
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public boolean hasStartedAt() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getStartedAt() {
        if (startedAtBuilder_ == null) {
          return startedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startedAt_;
        } else {
          return startedAtBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public Builder setStartedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (startedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startedAt_ = value;
          onChanged();
        } else {
          startedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public Builder setStartedAt(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (startedAtBuilder_ == null) {
          startedAt_ = builderForValue.build();
          onChanged();
        } else {
          startedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public Builder mergeStartedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (startedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && startedAt_ != null
              && startedAt_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            startedAt_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(startedAt_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            startedAt_ = value;
          }
          onChanged();
        } else {
          startedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public Builder clearStartedAt() {
        if (startedAtBuilder_ == null) {
          startedAt_ = null;
          onChanged();
        } else {
          startedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getStartedAtBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getStartedAtFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartedAtOrBuilder() {
        if (startedAtBuilder_ != null) {
          return startedAtBuilder_.getMessageOrBuilder();
        } else {
          return startedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startedAt_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which previous execution of the container started
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startedAt = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getStartedAtFieldBuilder() {
        if (startedAtBuilder_ == null) {
          startedAtBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getStartedAt(), getParentForChildren(), isClean());
          startedAt_ = null;
        }
        return startedAtBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time finishedAt_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          finishedAtBuilder_;
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public boolean hasFinishedAt() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getFinishedAt() {
        if (finishedAtBuilder_ == null) {
          return finishedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : finishedAt_;
        } else {
          return finishedAtBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public Builder setFinishedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (finishedAtBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          finishedAt_ = value;
          onChanged();
        } else {
          finishedAtBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public Builder setFinishedAt(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (finishedAtBuilder_ == null) {
          finishedAt_ = builderForValue.build();
          onChanged();
        } else {
          finishedAtBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public Builder mergeFinishedAt(io.kubernetes.client.proto.Meta.Time value) {
        if (finishedAtBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && finishedAt_ != null
              && finishedAt_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            finishedAt_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(finishedAt_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            finishedAt_ = value;
          }
          onChanged();
        } else {
          finishedAtBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public Builder clearFinishedAt() {
        if (finishedAtBuilder_ == null) {
          finishedAt_ = null;
          onChanged();
        } else {
          finishedAtBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getFinishedAtBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getFinishedAtFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getFinishedAtOrBuilder() {
        if (finishedAtBuilder_ != null) {
          return finishedAtBuilder_.getMessageOrBuilder();
        } else {
          return finishedAt_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : finishedAt_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which the container last terminated
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time finishedAt = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getFinishedAtFieldBuilder() {
        if (finishedAtBuilder_ == null) {
          finishedAtBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getFinishedAt(), getParentForChildren(), isClean());
          finishedAt_ = null;
        }
        return finishedAtBuilder_;
      }

      private java.lang.Object containerID_ = "";
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public boolean hasContainerID() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public java.lang.String getContainerID() {
        java.lang.Object ref = containerID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            containerID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public com.google.protobuf.ByteString getContainerIDBytes() {
        java.lang.Object ref = containerID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          containerID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public Builder setContainerID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        containerID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public Builder clearContainerID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        containerID_ = getDefaultInstance().getContainerID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 7;</code>
       */
      public Builder setContainerIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        containerID_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerStateTerminated)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerStateTerminated)
    private static final io.kubernetes.client.proto.V1.ContainerStateTerminated DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerStateTerminated();
    }

    public static io.kubernetes.client.proto.V1.ContainerStateTerminated getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerStateTerminated> PARSER =
        new com.google.protobuf.AbstractParser<ContainerStateTerminated>() {
          @java.lang.Override
          public ContainerStateTerminated parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerStateTerminated(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerStateTerminated> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerStateTerminated> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerStateTerminated getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerStateWaitingOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerStateWaiting)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * ContainerStateWaiting is a waiting state of a container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerStateWaiting}
   */
  public static final class ContainerStateWaiting extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerStateWaiting)
      ContainerStateWaitingOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerStateWaiting.newBuilder() to construct.
    private ContainerStateWaiting(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerStateWaiting() {
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerStateWaiting(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                reason_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerStateWaiting_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerStateWaiting.class,
              io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder.class);
    }

    private int bitField0_;
    public static final int REASON_FIELD_NUMBER = 1;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * (brief) reason the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 1;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Message regarding why the container is not yet running.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, reason_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, reason_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerStateWaiting)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerStateWaiting other =
          (io.kubernetes.client.proto.V1.ContainerStateWaiting) obj;

      boolean result = true;
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ContainerStateWaiting prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerStateWaiting is a waiting state of a container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerStateWaiting}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerStateWaiting)
        io.kubernetes.client.proto.V1.ContainerStateWaitingOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerStateWaiting_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerStateWaiting.class,
                io.kubernetes.client.proto.V1.ContainerStateWaiting.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerStateWaiting.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateWaiting getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateWaiting build() {
        io.kubernetes.client.proto.V1.ContainerStateWaiting result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStateWaiting buildPartial() {
        io.kubernetes.client.proto.V1.ContainerStateWaiting result =
            new io.kubernetes.client.proto.V1.ContainerStateWaiting(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerStateWaiting) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerStateWaiting) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerStateWaiting other) {
        if (other == io.kubernetes.client.proto.V1.ContainerStateWaiting.getDefaultInstance())
          return this;
        if (other.hasReason()) {
          bitField0_ |= 0x00000001;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000002;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerStateWaiting parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ContainerStateWaiting) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000001);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 1;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Message regarding why the container is not yet running.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerStateWaiting)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerStateWaiting)
    private static final io.kubernetes.client.proto.V1.ContainerStateWaiting DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerStateWaiting();
    }

    public static io.kubernetes.client.proto.V1.ContainerStateWaiting getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerStateWaiting> PARSER =
        new com.google.protobuf.AbstractParser<ContainerStateWaiting>() {
          @java.lang.Override
          public ContainerStateWaiting parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerStateWaiting(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerStateWaiting> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerStateWaiting> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerStateWaiting getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ContainerStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ContainerStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    boolean hasState();
    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    io.kubernetes.client.proto.V1.ContainerState getState();
    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateOrBuilder getStateOrBuilder();

    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    boolean hasLastState();
    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    io.kubernetes.client.proto.V1.ContainerState getLastState();
    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStateOrBuilder getLastStateOrBuilder();

    /**
     *
     *
     * <pre>
     * Specifies whether the container has passed its readiness probe.
     * </pre>
     *
     * <code>optional bool ready = 4;</code>
     */
    boolean hasReady();
    /**
     *
     *
     * <pre>
     * Specifies whether the container has passed its readiness probe.
     * </pre>
     *
     * <code>optional bool ready = 4;</code>
     */
    boolean getReady();

    /**
     *
     *
     * <pre>
     * The number of times the container has been restarted, currently based on
     * the number of dead containers that have not yet been removed.
     * Note that this is calculated from dead containers. But those containers are subject to
     * garbage collection. This value will get capped at 5 by GC.
     * </pre>
     *
     * <code>optional int32 restartCount = 5;</code>
     */
    boolean hasRestartCount();
    /**
     *
     *
     * <pre>
     * The number of times the container has been restarted, currently based on
     * the number of dead containers that have not yet been removed.
     * Note that this is calculated from dead containers. But those containers are subject to
     * garbage collection. This value will get capped at 5 by GC.
     * </pre>
     *
     * <code>optional int32 restartCount = 5;</code>
     */
    int getRestartCount();

    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    boolean hasImage();
    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    java.lang.String getImage();
    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    com.google.protobuf.ByteString getImageBytes();

    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    boolean hasImageID();
    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    java.lang.String getImageID();
    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    com.google.protobuf.ByteString getImageIDBytes();

    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    boolean hasContainerID();
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    java.lang.String getContainerID();
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    com.google.protobuf.ByteString getContainerIDBytes();
  }
  /**
   *
   *
   * <pre>
   * ContainerStatus contains details for the current status of this container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ContainerStatus}
   */
  public static final class ContainerStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ContainerStatus)
      ContainerStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ContainerStatus.newBuilder() to construct.
    private ContainerStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ContainerStatus() {
      name_ = "";
      ready_ = false;
      restartCount_ = 0;
      image_ = "";
      imageID_ = "";
      containerID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ContainerStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ContainerState.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = state_.toBuilder();
                }
                state_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerState.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(state_);
                  state_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ContainerState.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastState_.toBuilder();
                }
                lastState_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerState.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastState_);
                  lastState_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                ready_ = input.readBool();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                restartCount_ = input.readInt32();
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                image_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                imageID_ = bs;
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                containerID_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ContainerStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ContainerStatus.class,
              io.kubernetes.client.proto.V1.ContainerStatus.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * This must be a DNS_LABEL. Each container in a pod must have a unique name.
     * Cannot be updated.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ContainerState state_;
    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerState getState() {
      return state_ == null
          ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
          : state_;
    }
    /**
     *
     *
     * <pre>
     * Details about the container's current condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateOrBuilder getStateOrBuilder() {
      return state_ == null
          ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
          : state_;
    }

    public static final int LASTSTATE_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ContainerState lastState_;
    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    public boolean hasLastState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerState getLastState() {
      return lastState_ == null
          ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
          : lastState_;
    }
    /**
     *
     *
     * <pre>
     * Details about the container's last termination condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStateOrBuilder getLastStateOrBuilder() {
      return lastState_ == null
          ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
          : lastState_;
    }

    public static final int READY_FIELD_NUMBER = 4;
    private boolean ready_;
    /**
     *
     *
     * <pre>
     * Specifies whether the container has passed its readiness probe.
     * </pre>
     *
     * <code>optional bool ready = 4;</code>
     */
    public boolean hasReady() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Specifies whether the container has passed its readiness probe.
     * </pre>
     *
     * <code>optional bool ready = 4;</code>
     */
    public boolean getReady() {
      return ready_;
    }

    public static final int RESTARTCOUNT_FIELD_NUMBER = 5;
    private int restartCount_;
    /**
     *
     *
     * <pre>
     * The number of times the container has been restarted, currently based on
     * the number of dead containers that have not yet been removed.
     * Note that this is calculated from dead containers. But those containers are subject to
     * garbage collection. This value will get capped at 5 by GC.
     * </pre>
     *
     * <code>optional int32 restartCount = 5;</code>
     */
    public boolean hasRestartCount() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The number of times the container has been restarted, currently based on
     * the number of dead containers that have not yet been removed.
     * Note that this is calculated from dead containers. But those containers are subject to
     * garbage collection. This value will get capped at 5 by GC.
     * </pre>
     *
     * <code>optional int32 restartCount = 5;</code>
     */
    public int getRestartCount() {
      return restartCount_;
    }

    public static final int IMAGE_FIELD_NUMBER = 6;
    private volatile java.lang.Object image_;
    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    public boolean hasImage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    public java.lang.String getImage() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          image_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The image the container is running.
     * More info: https://kubernetes.io/docs/concepts/containers/images
     * TODO(dchen1107): Which image the container is running with?
     * </pre>
     *
     * <code>optional string image = 6;</code>
     */
    public com.google.protobuf.ByteString getImageBytes() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        image_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IMAGEID_FIELD_NUMBER = 7;
    private volatile java.lang.Object imageID_;
    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    public boolean hasImageID() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    public java.lang.String getImageID() {
      java.lang.Object ref = imageID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          imageID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ImageID of the container's image.
     * </pre>
     *
     * <code>optional string imageID = 7;</code>
     */
    public com.google.protobuf.ByteString getImageIDBytes() {
      java.lang.Object ref = imageID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        imageID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTAINERID_FIELD_NUMBER = 8;
    private volatile java.lang.Object containerID_;
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    public boolean hasContainerID() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    public java.lang.String getContainerID() {
      java.lang.Object ref = containerID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          containerID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Container's ID in the format 'docker://&lt;container_id&gt;'.
     * +optional
     * </pre>
     *
     * <code>optional string containerID = 8;</code>
     */
    public com.google.protobuf.ByteString getContainerIDBytes() {
      java.lang.Object ref = containerID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        containerID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getState());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastState());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, ready_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, restartCount_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, image_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, imageID_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, containerID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getState());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastState());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, ready_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, restartCount_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, image_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, imageID_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, containerID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ContainerStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ContainerStatus other =
          (io.kubernetes.client.proto.V1.ContainerStatus) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasState() == other.hasState());
      if (hasState()) {
        result = result && getState().equals(other.getState());
      }
      result = result && (hasLastState() == other.hasLastState());
      if (hasLastState()) {
        result = result && getLastState().equals(other.getLastState());
      }
      result = result && (hasReady() == other.hasReady());
      if (hasReady()) {
        result = result && (getReady() == other.getReady());
      }
      result = result && (hasRestartCount() == other.hasRestartCount());
      if (hasRestartCount()) {
        result = result && (getRestartCount() == other.getRestartCount());
      }
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage().equals(other.getImage());
      }
      result = result && (hasImageID() == other.hasImageID());
      if (hasImageID()) {
        result = result && getImageID().equals(other.getImageID());
      }
      result = result && (hasContainerID() == other.hasContainerID());
      if (hasContainerID()) {
        result = result && getContainerID().equals(other.getContainerID());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState().hashCode();
      }
      if (hasLastState()) {
        hash = (37 * hash) + LASTSTATE_FIELD_NUMBER;
        hash = (53 * hash) + getLastState().hashCode();
      }
      if (hasReady()) {
        hash = (37 * hash) + READY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReady());
      }
      if (hasRestartCount()) {
        hash = (37 * hash) + RESTARTCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getRestartCount();
      }
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      if (hasImageID()) {
        hash = (37 * hash) + IMAGEID_FIELD_NUMBER;
        hash = (53 * hash) + getImageID().hashCode();
      }
      if (hasContainerID()) {
        hash = (37 * hash) + CONTAINERID_FIELD_NUMBER;
        hash = (53 * hash) + getContainerID().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ContainerStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ContainerStatus contains details for the current status of this container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ContainerStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ContainerStatus)
        io.kubernetes.client.proto.V1.ContainerStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ContainerStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ContainerStatus.class,
                io.kubernetes.client.proto.V1.ContainerStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ContainerStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getStateFieldBuilder();
          getLastStateFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (stateBuilder_ == null) {
          state_ = null;
        } else {
          stateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastStateBuilder_ == null) {
          lastState_ = null;
        } else {
          lastStateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        ready_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        restartCount_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        image_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        imageID_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        containerID_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStatus build() {
        io.kubernetes.client.proto.V1.ContainerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ContainerStatus buildPartial() {
        io.kubernetes.client.proto.V1.ContainerStatus result =
            new io.kubernetes.client.proto.V1.ContainerStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (stateBuilder_ == null) {
          result.state_ = state_;
        } else {
          result.state_ = stateBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastStateBuilder_ == null) {
          result.lastState_ = lastState_;
        } else {
          result.lastState_ = lastStateBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.ready_ = ready_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.restartCount_ = restartCount_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.image_ = image_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.imageID_ = imageID_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.containerID_ = containerID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ContainerStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.ContainerStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ContainerStatus other) {
        if (other == io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance())
          return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasState()) {
          mergeState(other.getState());
        }
        if (other.hasLastState()) {
          mergeLastState(other.getLastState());
        }
        if (other.hasReady()) {
          setReady(other.getReady());
        }
        if (other.hasRestartCount()) {
          setRestartCount(other.getRestartCount());
        }
        if (other.hasImage()) {
          bitField0_ |= 0x00000020;
          image_ = other.image_;
          onChanged();
        }
        if (other.hasImageID()) {
          bitField0_ |= 0x00000040;
          imageID_ = other.imageID_;
          onChanged();
        }
        if (other.hasContainerID()) {
          bitField0_ |= 0x00000080;
          containerID_ = other.containerID_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ContainerStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ContainerStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This must be a DNS_LABEL. Each container in a pod must have a unique name.
       * Cannot be updated.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ContainerState state_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerState,
              io.kubernetes.client.proto.V1.ContainerState.Builder,
              io.kubernetes.client.proto.V1.ContainerStateOrBuilder>
          stateBuilder_;
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerState getState() {
        if (stateBuilder_ == null) {
          return state_ == null
              ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
              : state_;
        } else {
          return stateBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public Builder setState(io.kubernetes.client.proto.V1.ContainerState value) {
        if (stateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          state_ = value;
          onChanged();
        } else {
          stateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public Builder setState(
          io.kubernetes.client.proto.V1.ContainerState.Builder builderForValue) {
        if (stateBuilder_ == null) {
          state_ = builderForValue.build();
          onChanged();
        } else {
          stateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public Builder mergeState(io.kubernetes.client.proto.V1.ContainerState value) {
        if (stateBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && state_ != null
              && state_ != io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()) {
            state_ =
                io.kubernetes.client.proto.V1.ContainerState.newBuilder(state_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            state_ = value;
          }
          onChanged();
        } else {
          stateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public Builder clearState() {
        if (stateBuilder_ == null) {
          state_ = null;
          onChanged();
        } else {
          stateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerState.Builder getStateBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStateFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateOrBuilder getStateOrBuilder() {
        if (stateBuilder_ != null) {
          return stateBuilder_.getMessageOrBuilder();
        } else {
          return state_ == null
              ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
              : state_;
        }
      }
      /**
       *
       *
       * <pre>
       * Details about the container's current condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState state = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerState,
              io.kubernetes.client.proto.V1.ContainerState.Builder,
              io.kubernetes.client.proto.V1.ContainerStateOrBuilder>
          getStateFieldBuilder() {
        if (stateBuilder_ == null) {
          stateBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerState,
                  io.kubernetes.client.proto.V1.ContainerState.Builder,
                  io.kubernetes.client.proto.V1.ContainerStateOrBuilder>(
                  getState(), getParentForChildren(), isClean());
          state_ = null;
        }
        return stateBuilder_;
      }

      private io.kubernetes.client.proto.V1.ContainerState lastState_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerState,
              io.kubernetes.client.proto.V1.ContainerState.Builder,
              io.kubernetes.client.proto.V1.ContainerStateOrBuilder>
          lastStateBuilder_;
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public boolean hasLastState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerState getLastState() {
        if (lastStateBuilder_ == null) {
          return lastState_ == null
              ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
              : lastState_;
        } else {
          return lastStateBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public Builder setLastState(io.kubernetes.client.proto.V1.ContainerState value) {
        if (lastStateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastState_ = value;
          onChanged();
        } else {
          lastStateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public Builder setLastState(
          io.kubernetes.client.proto.V1.ContainerState.Builder builderForValue) {
        if (lastStateBuilder_ == null) {
          lastState_ = builderForValue.build();
          onChanged();
        } else {
          lastStateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public Builder mergeLastState(io.kubernetes.client.proto.V1.ContainerState value) {
        if (lastStateBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastState_ != null
              && lastState_ != io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()) {
            lastState_ =
                io.kubernetes.client.proto.V1.ContainerState.newBuilder(lastState_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastState_ = value;
          }
          onChanged();
        } else {
          lastStateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public Builder clearLastState() {
        if (lastStateBuilder_ == null) {
          lastState_ = null;
          onChanged();
        } else {
          lastStateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerState.Builder getLastStateBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastStateFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStateOrBuilder getLastStateOrBuilder() {
        if (lastStateBuilder_ != null) {
          return lastStateBuilder_.getMessageOrBuilder();
        } else {
          return lastState_ == null
              ? io.kubernetes.client.proto.V1.ContainerState.getDefaultInstance()
              : lastState_;
        }
      }
      /**
       *
       *
       * <pre>
       * Details about the container's last termination condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ContainerState lastState = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerState,
              io.kubernetes.client.proto.V1.ContainerState.Builder,
              io.kubernetes.client.proto.V1.ContainerStateOrBuilder>
          getLastStateFieldBuilder() {
        if (lastStateBuilder_ == null) {
          lastStateBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerState,
                  io.kubernetes.client.proto.V1.ContainerState.Builder,
                  io.kubernetes.client.proto.V1.ContainerStateOrBuilder>(
                  getLastState(), getParentForChildren(), isClean());
          lastState_ = null;
        }
        return lastStateBuilder_;
      }

      private boolean ready_;
      /**
       *
       *
       * <pre>
       * Specifies whether the container has passed its readiness probe.
       * </pre>
       *
       * <code>optional bool ready = 4;</code>
       */
      public boolean hasReady() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Specifies whether the container has passed its readiness probe.
       * </pre>
       *
       * <code>optional bool ready = 4;</code>
       */
      public boolean getReady() {
        return ready_;
      }
      /**
       *
       *
       * <pre>
       * Specifies whether the container has passed its readiness probe.
       * </pre>
       *
       * <code>optional bool ready = 4;</code>
       */
      public Builder setReady(boolean value) {
        bitField0_ |= 0x00000008;
        ready_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies whether the container has passed its readiness probe.
       * </pre>
       *
       * <code>optional bool ready = 4;</code>
       */
      public Builder clearReady() {
        bitField0_ = (bitField0_ & ~0x00000008);
        ready_ = false;
        onChanged();
        return this;
      }

      private int restartCount_;
      /**
       *
       *
       * <pre>
       * The number of times the container has been restarted, currently based on
       * the number of dead containers that have not yet been removed.
       * Note that this is calculated from dead containers. But those containers are subject to
       * garbage collection. This value will get capped at 5 by GC.
       * </pre>
       *
       * <code>optional int32 restartCount = 5;</code>
       */
      public boolean hasRestartCount() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The number of times the container has been restarted, currently based on
       * the number of dead containers that have not yet been removed.
       * Note that this is calculated from dead containers. But those containers are subject to
       * garbage collection. This value will get capped at 5 by GC.
       * </pre>
       *
       * <code>optional int32 restartCount = 5;</code>
       */
      public int getRestartCount() {
        return restartCount_;
      }
      /**
       *
       *
       * <pre>
       * The number of times the container has been restarted, currently based on
       * the number of dead containers that have not yet been removed.
       * Note that this is calculated from dead containers. But those containers are subject to
       * garbage collection. This value will get capped at 5 by GC.
       * </pre>
       *
       * <code>optional int32 restartCount = 5;</code>
       */
      public Builder setRestartCount(int value) {
        bitField0_ |= 0x00000010;
        restartCount_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The number of times the container has been restarted, currently based on
       * the number of dead containers that have not yet been removed.
       * Note that this is calculated from dead containers. But those containers are subject to
       * garbage collection. This value will get capped at 5 by GC.
       * </pre>
       *
       * <code>optional int32 restartCount = 5;</code>
       */
      public Builder clearRestartCount() {
        bitField0_ = (bitField0_ & ~0x00000010);
        restartCount_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object image_ = "";
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public java.lang.String getImage() {
        java.lang.Object ref = image_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            image_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public com.google.protobuf.ByteString getImageBytes() {
        java.lang.Object ref = image_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          image_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public Builder setImage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        image_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        image_ = getDefaultInstance().getImage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The image the container is running.
       * More info: https://kubernetes.io/docs/concepts/containers/images
       * TODO(dchen1107): Which image the container is running with?
       * </pre>
       *
       * <code>optional string image = 6;</code>
       */
      public Builder setImageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        image_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object imageID_ = "";
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public boolean hasImageID() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public java.lang.String getImageID() {
        java.lang.Object ref = imageID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            imageID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public com.google.protobuf.ByteString getImageIDBytes() {
        java.lang.Object ref = imageID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          imageID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public Builder setImageID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        imageID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public Builder clearImageID() {
        bitField0_ = (bitField0_ & ~0x00000040);
        imageID_ = getDefaultInstance().getImageID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImageID of the container's image.
       * </pre>
       *
       * <code>optional string imageID = 7;</code>
       */
      public Builder setImageIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        imageID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object containerID_ = "";
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public boolean hasContainerID() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public java.lang.String getContainerID() {
        java.lang.Object ref = containerID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            containerID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public com.google.protobuf.ByteString getContainerIDBytes() {
        java.lang.Object ref = containerID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          containerID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public Builder setContainerID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        containerID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public Builder clearContainerID() {
        bitField0_ = (bitField0_ & ~0x00000080);
        containerID_ = getDefaultInstance().getContainerID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container's ID in the format 'docker://&lt;container_id&gt;'.
       * +optional
       * </pre>
       *
       * <code>optional string containerID = 8;</code>
       */
      public Builder setContainerIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        containerID_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ContainerStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ContainerStatus)
    private static final io.kubernetes.client.proto.V1.ContainerStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ContainerStatus();
    }

    public static io.kubernetes.client.proto.V1.ContainerStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ContainerStatus> PARSER =
        new com.google.protobuf.AbstractParser<ContainerStatus>() {
          @java.lang.Override
          public ContainerStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ContainerStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ContainerStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ContainerStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ContainerStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface DaemonEndpointOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.DaemonEndpoint)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Port number of the given endpoint.
     * </pre>
     *
     * <code>optional int32 Port = 1;</code>
     */
    boolean hasPort();
    /**
     *
     *
     * <pre>
     * Port number of the given endpoint.
     * </pre>
     *
     * <code>optional int32 Port = 1;</code>
     */
    int getPort();
  }
  /**
   *
   *
   * <pre>
   * DaemonEndpoint contains information about a single Daemon endpoint.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.DaemonEndpoint}
   */
  public static final class DaemonEndpoint extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.DaemonEndpoint)
      DaemonEndpointOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use DaemonEndpoint.newBuilder() to construct.
    private DaemonEndpoint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private DaemonEndpoint() {
      port_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private DaemonEndpoint(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                port_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_DaemonEndpoint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.DaemonEndpoint.class,
              io.kubernetes.client.proto.V1.DaemonEndpoint.Builder.class);
    }

    private int bitField0_;
    public static final int PORT_FIELD_NUMBER = 1;
    private int port_;
    /**
     *
     *
     * <pre>
     * Port number of the given endpoint.
     * </pre>
     *
     * <code>optional int32 Port = 1;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Port number of the given endpoint.
     * </pre>
     *
     * <code>optional int32 Port = 1;</code>
     */
    public int getPort() {
      return port_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, port_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, port_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.DaemonEndpoint)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.DaemonEndpoint other =
          (io.kubernetes.client.proto.V1.DaemonEndpoint) obj;

      boolean result = true;
      result = result && (hasPort() == other.hasPort());
      if (hasPort()) {
        result = result && (getPort() == other.getPort());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.DaemonEndpoint prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * DaemonEndpoint contains information about a single Daemon endpoint.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.DaemonEndpoint}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.DaemonEndpoint)
        io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_DaemonEndpoint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.DaemonEndpoint.class,
                io.kubernetes.client.proto.V1.DaemonEndpoint.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.DaemonEndpoint.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DaemonEndpoint getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DaemonEndpoint build() {
        io.kubernetes.client.proto.V1.DaemonEndpoint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DaemonEndpoint buildPartial() {
        io.kubernetes.client.proto.V1.DaemonEndpoint result =
            new io.kubernetes.client.proto.V1.DaemonEndpoint(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.port_ = port_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.DaemonEndpoint) {
          return mergeFrom((io.kubernetes.client.proto.V1.DaemonEndpoint) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.DaemonEndpoint other) {
        if (other == io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()) return this;
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.DaemonEndpoint parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.DaemonEndpoint) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int port_;
      /**
       *
       *
       * <pre>
       * Port number of the given endpoint.
       * </pre>
       *
       * <code>optional int32 Port = 1;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Port number of the given endpoint.
       * </pre>
       *
       * <code>optional int32 Port = 1;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       *
       *
       * <pre>
       * Port number of the given endpoint.
       * </pre>
       *
       * <code>optional int32 Port = 1;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000001;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port number of the given endpoint.
       * </pre>
       *
       * <code>optional int32 Port = 1;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000001);
        port_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.DaemonEndpoint)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.DaemonEndpoint)
    private static final io.kubernetes.client.proto.V1.DaemonEndpoint DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.DaemonEndpoint();
    }

    public static io.kubernetes.client.proto.V1.DaemonEndpoint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<DaemonEndpoint> PARSER =
        new com.google.protobuf.AbstractParser<DaemonEndpoint>() {
          @java.lang.Override
          public DaemonEndpoint parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new DaemonEndpoint(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<DaemonEndpoint> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DaemonEndpoint> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.DaemonEndpoint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface DownwardAPIProjectionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.DownwardAPIProjection)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Represents downward API info for projecting into a projected volume.
   * Note that this is identical to a downwardAPI volume source without the default
   * mode.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIProjection}
   */
  public static final class DownwardAPIProjection extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.DownwardAPIProjection)
      DownwardAPIProjectionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use DownwardAPIProjection.newBuilder() to construct.
    private DownwardAPIProjection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private DownwardAPIProjection() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private DownwardAPIProjection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  items_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>();
                  mutable_bitField0_ |= 0x00000001;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIProjection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.DownwardAPIProjection.class,
              io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder.class);
    }

    public static final int ITEMS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> items_;
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is a list of DownwardAPIVolume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(1, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.DownwardAPIProjection)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.DownwardAPIProjection other =
          (io.kubernetes.client.proto.V1.DownwardAPIProjection) obj;

      boolean result = true;
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.DownwardAPIProjection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents downward API info for projecting into a projected volume.
     * Note that this is identical to a downwardAPI volume source without the default
     * mode.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIProjection}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.DownwardAPIProjection)
        io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIProjection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.DownwardAPIProjection.class,
                io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.DownwardAPIProjection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIProjection build() {
        io.kubernetes.client.proto.V1.DownwardAPIProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIProjection buildPartial() {
        io.kubernetes.client.proto.V1.DownwardAPIProjection result =
            new io.kubernetes.client.proto.V1.DownwardAPIProjection(this);
        int from_bitField0_ = bitField0_;
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.DownwardAPIProjection) {
          return mergeFrom((io.kubernetes.client.proto.V1.DownwardAPIProjection) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.DownwardAPIProjection other) {
        if (other == io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance())
          return this;
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.DownwardAPIProjection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.DownwardAPIProjection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          items_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>(items_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>
              values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of DownwardAPIVolume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.DownwardAPIProjection)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.DownwardAPIProjection)
    private static final io.kubernetes.client.proto.V1.DownwardAPIProjection DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.DownwardAPIProjection();
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIProjection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<DownwardAPIProjection> PARSER =
        new com.google.protobuf.AbstractParser<DownwardAPIProjection>() {
          @java.lang.Override
          public DownwardAPIProjection parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new DownwardAPIProjection(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<DownwardAPIProjection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DownwardAPIProjection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.DownwardAPIProjection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface DownwardAPIVolumeFileOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.DownwardAPIVolumeFile)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    boolean hasFieldRef();
    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef();
    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    boolean hasResourceFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder getResourceFieldRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 4;</code>
     */
    boolean hasMode();
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 4;</code>
     */
    int getMode();
  }
  /**
   *
   *
   * <pre>
   * DownwardAPIVolumeFile represents information to create the file containing the pod field
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIVolumeFile}
   */
  public static final class DownwardAPIVolumeFile extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.DownwardAPIVolumeFile)
      DownwardAPIVolumeFileOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use DownwardAPIVolumeFile.newBuilder() to construct.
    private DownwardAPIVolumeFile(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private DownwardAPIVolumeFile() {
      path_ = "";
      mode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private DownwardAPIVolumeFile(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = fieldRef_.toBuilder();
                }
                fieldRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectFieldSelector.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fieldRef_);
                  fieldRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = resourceFieldRef_.toBuilder();
                }
                resourceFieldRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceFieldSelector.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resourceFieldRef_);
                  resourceFieldRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                mode_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.class,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIELDREF_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ObjectFieldSelector fieldRef_;
    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    public boolean hasFieldRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef() {
      return fieldRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
          : fieldRef_;
    }
    /**
     *
     *
     * <pre>
     * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder() {
      return fieldRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
          : fieldRef_;
    }

    public static final int RESOURCEFIELDREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ResourceFieldSelector resourceFieldRef_;
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    public boolean hasResourceFieldRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef() {
      return resourceFieldRef_ == null
          ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
          : resourceFieldRef_;
    }
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder
        getResourceFieldRefOrBuilder() {
      return resourceFieldRef_ == null
          ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
          : resourceFieldRef_;
    }

    public static final int MODE_FIELD_NUMBER = 4;
    private int mode_;
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 4;</code>
     */
    public boolean hasMode() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 4;</code>
     */
    public int getMode() {
      return mode_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getFieldRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getResourceFieldRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, mode_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getFieldRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getResourceFieldRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, mode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.DownwardAPIVolumeFile)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.DownwardAPIVolumeFile other =
          (io.kubernetes.client.proto.V1.DownwardAPIVolumeFile) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasFieldRef() == other.hasFieldRef());
      if (hasFieldRef()) {
        result = result && getFieldRef().equals(other.getFieldRef());
      }
      result = result && (hasResourceFieldRef() == other.hasResourceFieldRef());
      if (hasResourceFieldRef()) {
        result = result && getResourceFieldRef().equals(other.getResourceFieldRef());
      }
      result = result && (hasMode() == other.hasMode());
      if (hasMode()) {
        result = result && (getMode() == other.getMode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasFieldRef()) {
        hash = (37 * hash) + FIELDREF_FIELD_NUMBER;
        hash = (53 * hash) + getFieldRef().hashCode();
      }
      if (hasResourceFieldRef()) {
        hash = (37 * hash) + RESOURCEFIELDREF_FIELD_NUMBER;
        hash = (53 * hash) + getResourceFieldRef().hashCode();
      }
      if (hasMode()) {
        hash = (37 * hash) + MODE_FIELD_NUMBER;
        hash = (53 * hash) + getMode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * DownwardAPIVolumeFile represents information to create the file containing the pod field
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIVolumeFile}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.DownwardAPIVolumeFile)
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.class,
                io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getFieldRefFieldBuilder();
          getResourceFieldRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (fieldRefBuilder_ == null) {
          fieldRef_ = null;
        } else {
          fieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = null;
        } else {
          resourceFieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        mode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile build() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile buildPartial() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile result =
            new io.kubernetes.client.proto.V1.DownwardAPIVolumeFile(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (fieldRefBuilder_ == null) {
          result.fieldRef_ = fieldRef_;
        } else {
          result.fieldRef_ = fieldRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (resourceFieldRefBuilder_ == null) {
          result.resourceFieldRef_ = resourceFieldRef_;
        } else {
          result.resourceFieldRef_ = resourceFieldRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.mode_ = mode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.DownwardAPIVolumeFile) {
          return mergeFrom((io.kubernetes.client.proto.V1.DownwardAPIVolumeFile) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.DownwardAPIVolumeFile other) {
        if (other == io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasFieldRef()) {
          mergeFieldRef(other.getFieldRef());
        }
        if (other.hasResourceFieldRef()) {
          mergeResourceFieldRef(other.getResourceFieldRef());
        }
        if (other.hasMode()) {
          setMode(other.getMode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.DownwardAPIVolumeFile) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Path is  the relative path name of the file to be created. Must not be absolute or contain the '..' path. Must be utf-8 encoded. The first item of the relative path must not start with '..'
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ObjectFieldSelector fieldRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectFieldSelector,
              io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>
          fieldRefBuilder_;
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public boolean hasFieldRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef() {
        if (fieldRefBuilder_ == null) {
          return fieldRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
              : fieldRef_;
        } else {
          return fieldRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public Builder setFieldRef(io.kubernetes.client.proto.V1.ObjectFieldSelector value) {
        if (fieldRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fieldRef_ = value;
          onChanged();
        } else {
          fieldRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public Builder setFieldRef(
          io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder builderForValue) {
        if (fieldRefBuilder_ == null) {
          fieldRef_ = builderForValue.build();
          onChanged();
        } else {
          fieldRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public Builder mergeFieldRef(io.kubernetes.client.proto.V1.ObjectFieldSelector value) {
        if (fieldRefBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && fieldRef_ != null
              && fieldRef_
                  != io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()) {
            fieldRef_ =
                io.kubernetes.client.proto.V1.ObjectFieldSelector.newBuilder(fieldRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            fieldRef_ = value;
          }
          onChanged();
        } else {
          fieldRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public Builder clearFieldRef() {
        if (fieldRefBuilder_ == null) {
          fieldRef_ = null;
          onChanged();
        } else {
          fieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder getFieldRefBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getFieldRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder() {
        if (fieldRefBuilder_ != null) {
          return fieldRefBuilder_.getMessageOrBuilder();
        } else {
          return fieldRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
              : fieldRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectFieldSelector,
              io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>
          getFieldRefFieldBuilder() {
        if (fieldRefBuilder_ == null) {
          fieldRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectFieldSelector,
                  io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
                  io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>(
                  getFieldRef(), getParentForChildren(), isClean());
          fieldRef_ = null;
        }
        return fieldRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceFieldSelector resourceFieldRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceFieldSelector,
              io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>
          resourceFieldRefBuilder_;
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public boolean hasResourceFieldRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef() {
        if (resourceFieldRefBuilder_ == null) {
          return resourceFieldRef_ == null
              ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
              : resourceFieldRef_;
        } else {
          return resourceFieldRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public Builder setResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector value) {
        if (resourceFieldRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resourceFieldRef_ = value;
          onChanged();
        } else {
          resourceFieldRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public Builder setResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder builderForValue) {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = builderForValue.build();
          onChanged();
        } else {
          resourceFieldRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public Builder mergeResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector value) {
        if (resourceFieldRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && resourceFieldRef_ != null
              && resourceFieldRef_
                  != io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()) {
            resourceFieldRef_ =
                io.kubernetes.client.proto.V1.ResourceFieldSelector.newBuilder(resourceFieldRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            resourceFieldRef_ = value;
          }
          onChanged();
        } else {
          resourceFieldRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public Builder clearResourceFieldRef() {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = null;
          onChanged();
        } else {
          resourceFieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder
          getResourceFieldRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResourceFieldRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder
          getResourceFieldRefOrBuilder() {
        if (resourceFieldRefBuilder_ != null) {
          return resourceFieldRefBuilder_.getMessageOrBuilder();
        } else {
          return resourceFieldRef_ == null
              ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
              : resourceFieldRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceFieldSelector,
              io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>
          getResourceFieldRefFieldBuilder() {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceFieldSelector,
                  io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
                  io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>(
                  getResourceFieldRef(), getParentForChildren(), isClean());
          resourceFieldRef_ = null;
        }
        return resourceFieldRefBuilder_;
      }

      private int mode_;
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 4;</code>
       */
      public boolean hasMode() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 4;</code>
       */
      public int getMode() {
        return mode_;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 4;</code>
       */
      public Builder setMode(int value) {
        bitField0_ |= 0x00000008;
        mode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 4;</code>
       */
      public Builder clearMode() {
        bitField0_ = (bitField0_ & ~0x00000008);
        mode_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.DownwardAPIVolumeFile)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.DownwardAPIVolumeFile)
    private static final io.kubernetes.client.proto.V1.DownwardAPIVolumeFile DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.DownwardAPIVolumeFile();
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<DownwardAPIVolumeFile> PARSER =
        new com.google.protobuf.AbstractParser<DownwardAPIVolumeFile>() {
          @java.lang.Override
          public DownwardAPIVolumeFile parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new DownwardAPIVolumeFile(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<DownwardAPIVolumeFile> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DownwardAPIVolumeFile> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface DownwardAPIVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.DownwardAPIVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    boolean hasDefaultMode();
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    int getDefaultMode();
  }
  /**
   *
   *
   * <pre>
   * DownwardAPIVolumeSource represents a volume containing downward API info.
   * Downward API volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIVolumeSource}
   */
  public static final class DownwardAPIVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.DownwardAPIVolumeSource)
      DownwardAPIVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use DownwardAPIVolumeSource.newBuilder() to construct.
    private DownwardAPIVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private DownwardAPIVolumeSource() {
      items_ = java.util.Collections.emptyList();
      defaultMode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private DownwardAPIVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  items_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>();
                  mutable_bitField0_ |= 0x00000001;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.PARSER,
                        extensionRegistry));
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000001;
                defaultMode_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.class,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int ITEMS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> items_;
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is a list of downward API volume file
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

    public static final int DEFAULTMODE_FIELD_NUMBER = 2;
    private int defaultMode_;
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    public boolean hasDefaultMode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    public int getDefaultMode() {
      return defaultMode_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(1, items_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(2, defaultMode_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, items_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, defaultMode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.DownwardAPIVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.DownwardAPIVolumeSource other =
          (io.kubernetes.client.proto.V1.DownwardAPIVolumeSource) obj;

      boolean result = true;
      result = result && getItemsList().equals(other.getItemsList());
      result = result && (hasDefaultMode() == other.hasDefaultMode());
      if (hasDefaultMode()) {
        result = result && (getDefaultMode() == other.getDefaultMode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      if (hasDefaultMode()) {
        hash = (37 * hash) + DEFAULTMODE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultMode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * DownwardAPIVolumeSource represents a volume containing downward API info.
     * Downward API volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.DownwardAPIVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.DownwardAPIVolumeSource)
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.class,
                io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          itemsBuilder_.clear();
        }
        defaultMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource build() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource result =
            new io.kubernetes.client.proto.V1.DownwardAPIVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.defaultMode_ = defaultMode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.DownwardAPIVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.DownwardAPIVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.DownwardAPIVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance())
          return this;
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000001);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        if (other.hasDefaultMode()) {
          setDefaultMode(other.getDefaultMode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.DownwardAPIVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          items_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>(items_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFile>
              values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of downward API volume file
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.DownwardAPIVolumeFile items = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFile,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFile.Builder,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeFileOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private int defaultMode_;
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public boolean hasDefaultMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public int getDefaultMode() {
        return defaultMode_;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public Builder setDefaultMode(int value) {
        bitField0_ |= 0x00000002;
        defaultMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public Builder clearDefaultMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        defaultMode_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.DownwardAPIVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.DownwardAPIVolumeSource)
    private static final io.kubernetes.client.proto.V1.DownwardAPIVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.DownwardAPIVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<DownwardAPIVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<DownwardAPIVolumeSource>() {
          @java.lang.Override
          public DownwardAPIVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new DownwardAPIVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<DownwardAPIVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<DownwardAPIVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EmptyDirVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EmptyDirVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    boolean hasMedium();
    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    java.lang.String getMedium();
    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    com.google.protobuf.ByteString getMediumBytes();

    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    boolean hasSizeLimit();
    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getSizeLimit();
    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    io.kubernetes.client.proto.Resource.QuantityOrBuilder getSizeLimitOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents an empty directory for a pod.
   * Empty directory volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EmptyDirVolumeSource}
   */
  public static final class EmptyDirVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EmptyDirVolumeSource)
      EmptyDirVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EmptyDirVolumeSource.newBuilder() to construct.
    private EmptyDirVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EmptyDirVolumeSource() {
      medium_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EmptyDirVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                medium_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.Resource.Quantity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = sizeLimit_.toBuilder();
                }
                sizeLimit_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Resource.Quantity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(sizeLimit_);
                  sizeLimit_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource.class,
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int MEDIUM_FIELD_NUMBER = 1;
    private volatile java.lang.Object medium_;
    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    public boolean hasMedium() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    public java.lang.String getMedium() {
      java.lang.Object ref = medium_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          medium_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * What type of storage medium should back this directory.
     * The default is "" which means to use the node's default medium.
     * Must be an empty string (default) or Memory.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional string medium = 1;</code>
     */
    public com.google.protobuf.ByteString getMediumBytes() {
      java.lang.Object ref = medium_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        medium_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SIZELIMIT_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.Resource.Quantity sizeLimit_;
    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    public boolean hasSizeLimit() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getSizeLimit() {
      return sizeLimit_ == null
          ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
          : sizeLimit_;
    }
    /**
     *
     *
     * <pre>
     * Total amount of local storage required for this EmptyDir volume.
     * The size limit is also applicable for memory medium.
     * The maximum usage on memory medium EmptyDir would be the minimum value between
     * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
     * The default is nil which means that the limit is undefined.
     * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.QuantityOrBuilder getSizeLimitOrBuilder() {
      return sizeLimit_ == null
          ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
          : sizeLimit_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, medium_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSizeLimit());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, medium_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSizeLimit());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EmptyDirVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EmptyDirVolumeSource other =
          (io.kubernetes.client.proto.V1.EmptyDirVolumeSource) obj;

      boolean result = true;
      result = result && (hasMedium() == other.hasMedium());
      if (hasMedium()) {
        result = result && getMedium().equals(other.getMedium());
      }
      result = result && (hasSizeLimit() == other.hasSizeLimit());
      if (hasSizeLimit()) {
        result = result && getSizeLimit().equals(other.getSizeLimit());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMedium()) {
        hash = (37 * hash) + MEDIUM_FIELD_NUMBER;
        hash = (53 * hash) + getMedium().hashCode();
      }
      if (hasSizeLimit()) {
        hash = (37 * hash) + SIZELIMIT_FIELD_NUMBER;
        hash = (53 * hash) + getSizeLimit().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EmptyDirVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents an empty directory for a pod.
     * Empty directory volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EmptyDirVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EmptyDirVolumeSource)
        io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EmptyDirVolumeSource.class,
                io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EmptyDirVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSizeLimitFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        medium_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (sizeLimitBuilder_ == null) {
          sizeLimit_ = null;
        } else {
          sizeLimitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource build() {
        io.kubernetes.client.proto.V1.EmptyDirVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.EmptyDirVolumeSource result =
            new io.kubernetes.client.proto.V1.EmptyDirVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.medium_ = medium_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (sizeLimitBuilder_ == null) {
          result.sizeLimit_ = sizeLimit_;
        } else {
          result.sizeLimit_ = sizeLimitBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EmptyDirVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.EmptyDirVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EmptyDirVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance())
          return this;
        if (other.hasMedium()) {
          bitField0_ |= 0x00000001;
          medium_ = other.medium_;
          onChanged();
        }
        if (other.hasSizeLimit()) {
          mergeSizeLimit(other.getSizeLimit());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EmptyDirVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.EmptyDirVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object medium_ = "";
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public boolean hasMedium() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public java.lang.String getMedium() {
        java.lang.Object ref = medium_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            medium_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public com.google.protobuf.ByteString getMediumBytes() {
        java.lang.Object ref = medium_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          medium_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public Builder setMedium(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        medium_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public Builder clearMedium() {
        bitField0_ = (bitField0_ & ~0x00000001);
        medium_ = getDefaultInstance().getMedium();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What type of storage medium should back this directory.
       * The default is "" which means to use the node's default medium.
       * Must be an empty string (default) or Memory.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional string medium = 1;</code>
       */
      public Builder setMediumBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        medium_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Resource.Quantity sizeLimit_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Resource.Quantity,
              io.kubernetes.client.proto.Resource.Quantity.Builder,
              io.kubernetes.client.proto.Resource.QuantityOrBuilder>
          sizeLimitBuilder_;
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public boolean hasSizeLimit() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getSizeLimit() {
        if (sizeLimitBuilder_ == null) {
          return sizeLimit_ == null
              ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
              : sizeLimit_;
        } else {
          return sizeLimitBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public Builder setSizeLimit(io.kubernetes.client.proto.Resource.Quantity value) {
        if (sizeLimitBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sizeLimit_ = value;
          onChanged();
        } else {
          sizeLimitBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public Builder setSizeLimit(
          io.kubernetes.client.proto.Resource.Quantity.Builder builderForValue) {
        if (sizeLimitBuilder_ == null) {
          sizeLimit_ = builderForValue.build();
          onChanged();
        } else {
          sizeLimitBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public Builder mergeSizeLimit(io.kubernetes.client.proto.Resource.Quantity value) {
        if (sizeLimitBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && sizeLimit_ != null
              && sizeLimit_ != io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()) {
            sizeLimit_ =
                io.kubernetes.client.proto.Resource.Quantity.newBuilder(sizeLimit_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            sizeLimit_ = value;
          }
          onChanged();
        } else {
          sizeLimitBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public Builder clearSizeLimit() {
        if (sizeLimitBuilder_ == null) {
          sizeLimit_ = null;
          onChanged();
        } else {
          sizeLimitBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public io.kubernetes.client.proto.Resource.Quantity.Builder getSizeLimitBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSizeLimitFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      public io.kubernetes.client.proto.Resource.QuantityOrBuilder getSizeLimitOrBuilder() {
        if (sizeLimitBuilder_ != null) {
          return sizeLimitBuilder_.getMessageOrBuilder();
        } else {
          return sizeLimit_ == null
              ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
              : sizeLimit_;
        }
      }
      /**
       *
       *
       * <pre>
       * Total amount of local storage required for this EmptyDir volume.
       * The size limit is also applicable for memory medium.
       * The maximum usage on memory medium EmptyDir would be the minimum value between
       * the SizeLimit specified here and the sum of memory limits of all containers in a pod.
       * The default is nil which means that the limit is undefined.
       * More info: http://kubernetes.io/docs/user-guide/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity sizeLimit = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Resource.Quantity,
              io.kubernetes.client.proto.Resource.Quantity.Builder,
              io.kubernetes.client.proto.Resource.QuantityOrBuilder>
          getSizeLimitFieldBuilder() {
        if (sizeLimitBuilder_ == null) {
          sizeLimitBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Resource.Quantity,
                  io.kubernetes.client.proto.Resource.Quantity.Builder,
                  io.kubernetes.client.proto.Resource.QuantityOrBuilder>(
                  getSizeLimit(), getParentForChildren(), isClean());
          sizeLimit_ = null;
        }
        return sizeLimitBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EmptyDirVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EmptyDirVolumeSource)
    private static final io.kubernetes.client.proto.V1.EmptyDirVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EmptyDirVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.EmptyDirVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EmptyDirVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<EmptyDirVolumeSource>() {
          @java.lang.Override
          public EmptyDirVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EmptyDirVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EmptyDirVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EmptyDirVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EmptyDirVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EndpointAddressOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EndpointAddress)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    boolean hasIp();
    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    java.lang.String getIp();
    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    com.google.protobuf.ByteString getIpBytes();

    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    boolean hasHostname();
    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    java.lang.String getHostname();
    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    com.google.protobuf.ByteString getHostnameBytes();

    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    boolean hasNodeName();
    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    java.lang.String getNodeName();
    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    com.google.protobuf.ByteString getNodeNameBytes();

    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    boolean hasTargetRef();
    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getTargetRef();
    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * EndpointAddress is a tuple that describes single IP address.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EndpointAddress}
   */
  public static final class EndpointAddress extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EndpointAddress)
      EndpointAddressOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EndpointAddress.newBuilder() to construct.
    private EndpointAddress(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EndpointAddress() {
      ip_ = "";
      hostname_ = "";
      nodeName_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EndpointAddress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                ip_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = targetRef_.toBuilder();
                }
                targetRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(targetRef_);
                  targetRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                hostname_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                nodeName_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EndpointAddress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EndpointAddress.class,
              io.kubernetes.client.proto.V1.EndpointAddress.Builder.class);
    }

    private int bitField0_;
    public static final int IP_FIELD_NUMBER = 1;
    private volatile java.lang.Object ip_;
    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public boolean hasIp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public java.lang.String getIp() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ip_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The IP of this endpoint.
     * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
     * or link-local multicast ((224.0.0.0/24).
     * IPv6 is also accepted but not fully supported on all platforms. Also, certain
     * kubernetes components, like kube-proxy, are not IPv6 ready.
     * TODO: This should allow hostname or IP, See #4447.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public com.google.protobuf.ByteString getIpBytes() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        ip_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTNAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object hostname_;
    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The Hostname of this endpoint
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 3;</code>
     */
    public com.google.protobuf.ByteString getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NODENAME_FIELD_NUMBER = 4;
    private volatile java.lang.Object nodeName_;
    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    public boolean hasNodeName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    public java.lang.String getNodeName() {
      java.lang.Object ref = nodeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nodeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 4;</code>
     */
    public com.google.protobuf.ByteString getNodeNameBytes() {
      java.lang.Object ref = nodeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        nodeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TARGETREF_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ObjectReference targetRef_;
    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    public boolean hasTargetRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getTargetRef() {
      return targetRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : targetRef_;
    }
    /**
     *
     *
     * <pre>
     * Reference to object providing the endpoint.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetRefOrBuilder() {
      return targetRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : targetRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(2, getTargetRef());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, hostname_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, nodeName_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTargetRef());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, hostname_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, nodeName_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EndpointAddress)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EndpointAddress other =
          (io.kubernetes.client.proto.V1.EndpointAddress) obj;

      boolean result = true;
      result = result && (hasIp() == other.hasIp());
      if (hasIp()) {
        result = result && getIp().equals(other.getIp());
      }
      result = result && (hasHostname() == other.hasHostname());
      if (hasHostname()) {
        result = result && getHostname().equals(other.getHostname());
      }
      result = result && (hasNodeName() == other.hasNodeName());
      if (hasNodeName()) {
        result = result && getNodeName().equals(other.getNodeName());
      }
      result = result && (hasTargetRef() == other.hasTargetRef());
      if (hasTargetRef()) {
        result = result && getTargetRef().equals(other.getTargetRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasIp()) {
        hash = (37 * hash) + IP_FIELD_NUMBER;
        hash = (53 * hash) + getIp().hashCode();
      }
      if (hasHostname()) {
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
      }
      if (hasNodeName()) {
        hash = (37 * hash) + NODENAME_FIELD_NUMBER;
        hash = (53 * hash) + getNodeName().hashCode();
      }
      if (hasTargetRef()) {
        hash = (37 * hash) + TARGETREF_FIELD_NUMBER;
        hash = (53 * hash) + getTargetRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EndpointAddress prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EndpointAddress is a tuple that describes single IP address.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EndpointAddress}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EndpointAddress)
        io.kubernetes.client.proto.V1.EndpointAddressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EndpointAddress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EndpointAddress.class,
                io.kubernetes.client.proto.V1.EndpointAddress.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EndpointAddress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getTargetRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        nodeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (targetRefBuilder_ == null) {
          targetRef_ = null;
        } else {
          targetRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointAddress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointAddress build() {
        io.kubernetes.client.proto.V1.EndpointAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointAddress buildPartial() {
        io.kubernetes.client.proto.V1.EndpointAddress result =
            new io.kubernetes.client.proto.V1.EndpointAddress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ip_ = ip_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.nodeName_ = nodeName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (targetRefBuilder_ == null) {
          result.targetRef_ = targetRef_;
        } else {
          result.targetRef_ = targetRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EndpointAddress) {
          return mergeFrom((io.kubernetes.client.proto.V1.EndpointAddress) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EndpointAddress other) {
        if (other == io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance())
          return this;
        if (other.hasIp()) {
          bitField0_ |= 0x00000001;
          ip_ = other.ip_;
          onChanged();
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00000002;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasNodeName()) {
          bitField0_ |= 0x00000004;
          nodeName_ = other.nodeName_;
          onChanged();
        }
        if (other.hasTargetRef()) {
          mergeTargetRef(other.getTargetRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EndpointAddress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EndpointAddress) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object ip_ = "";
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public boolean hasIp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public java.lang.String getIp() {
        java.lang.Object ref = ip_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ip_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public com.google.protobuf.ByteString getIpBytes() {
        java.lang.Object ref = ip_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          ip_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIp(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = getDefaultInstance().getIp();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP of this endpoint.
       * May not be loopback (127.0.0.0/8), link-local (169.254.0.0/16),
       * or link-local multicast ((224.0.0.0/24).
       * IPv6 is also accepted but not fully supported on all platforms. Also, certain
       * kubernetes components, like kube-proxy, are not IPv6 ready.
       * TODO: This should allow hostname or IP, See #4447.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIpBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hostname_ = "";
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostname_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public com.google.protobuf.ByteString getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public Builder setHostname(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Hostname of this endpoint
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 3;</code>
       */
      public Builder setHostnameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nodeName_ = "";
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public boolean hasNodeName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public java.lang.String getNodeName() {
        java.lang.Object ref = nodeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nodeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public com.google.protobuf.ByteString getNodeNameBytes() {
        java.lang.Object ref = nodeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          nodeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public Builder setNodeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        nodeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public Builder clearNodeName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        nodeName_ = getDefaultInstance().getNodeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Node hosting this endpoint. This can be used to determine endpoints local to a node.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 4;</code>
       */
      public Builder setNodeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        nodeName_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ObjectReference targetRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          targetRefBuilder_;
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public boolean hasTargetRef() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getTargetRef() {
        if (targetRefBuilder_ == null) {
          return targetRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : targetRef_;
        } else {
          return targetRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public Builder setTargetRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (targetRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetRef_ = value;
          onChanged();
        } else {
          targetRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public Builder setTargetRef(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (targetRefBuilder_ == null) {
          targetRef_ = builderForValue.build();
          onChanged();
        } else {
          targetRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public Builder mergeTargetRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (targetRefBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && targetRef_ != null
              && targetRef_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            targetRef_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(targetRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            targetRef_ = value;
          }
          onChanged();
        } else {
          targetRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public Builder clearTargetRef() {
        if (targetRefBuilder_ == null) {
          targetRef_ = null;
          onChanged();
        } else {
          targetRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getTargetRefBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getTargetRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getTargetRefOrBuilder() {
        if (targetRefBuilder_ != null) {
          return targetRefBuilder_.getMessageOrBuilder();
        } else {
          return targetRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : targetRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Reference to object providing the endpoint.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference targetRef = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getTargetRefFieldBuilder() {
        if (targetRefBuilder_ == null) {
          targetRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getTargetRef(), getParentForChildren(), isClean());
          targetRef_ = null;
        }
        return targetRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EndpointAddress)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EndpointAddress)
    private static final io.kubernetes.client.proto.V1.EndpointAddress DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EndpointAddress();
    }

    public static io.kubernetes.client.proto.V1.EndpointAddress getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EndpointAddress> PARSER =
        new com.google.protobuf.AbstractParser<EndpointAddress>() {
          @java.lang.Override
          public EndpointAddress parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EndpointAddress(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EndpointAddress> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EndpointAddress> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EndpointAddress getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EndpointPortOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EndpointPort)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * The port number of the endpoint.
     * </pre>
     *
     * <code>optional int32 port = 2;</code>
     */
    boolean hasPort();
    /**
     *
     *
     * <pre>
     * The port number of the endpoint.
     * </pre>
     *
     * <code>optional int32 port = 2;</code>
     */
    int getPort();

    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    boolean hasProtocol();
    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    java.lang.String getProtocol();
    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    com.google.protobuf.ByteString getProtocolBytes();
  }
  /**
   *
   *
   * <pre>
   * EndpointPort is a tuple that describes a single port.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EndpointPort}
   */
  public static final class EndpointPort extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EndpointPort)
      EndpointPortOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EndpointPort.newBuilder() to construct.
    private EndpointPort(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EndpointPort() {
      name_ = "";
      port_ = 0;
      protocol_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EndpointPort(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                port_ = input.readInt32();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                protocol_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EndpointPort_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EndpointPort_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EndpointPort.class,
              io.kubernetes.client.proto.V1.EndpointPort.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of this port (corresponds to ServicePort.Name).
     * Must be a DNS_LABEL.
     * Optional only if one port is defined.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PORT_FIELD_NUMBER = 2;
    private int port_;
    /**
     *
     *
     * <pre>
     * The port number of the endpoint.
     * </pre>
     *
     * <code>optional int32 port = 2;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The port number of the endpoint.
     * </pre>
     *
     * <code>optional int32 port = 2;</code>
     */
    public int getPort() {
      return port_;
    }

    public static final int PROTOCOL_FIELD_NUMBER = 3;
    private volatile java.lang.Object protocol_;
    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The IP protocol for this port.
     * Must be UDP, TCP, or SCTP.
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 3;</code>
     */
    public com.google.protobuf.ByteString getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, port_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, protocol_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, port_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, protocol_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EndpointPort)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EndpointPort other =
          (io.kubernetes.client.proto.V1.EndpointPort) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasPort() == other.hasPort());
      if (hasPort()) {
        result = result && (getPort() == other.getPort());
      }
      result = result && (hasProtocol() == other.hasProtocol());
      if (hasProtocol()) {
        result = result && getProtocol().equals(other.getProtocol());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort();
      }
      if (hasProtocol()) {
        hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;
        hash = (53 * hash) + getProtocol().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointPort parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EndpointPort prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EndpointPort is a tuple that describes a single port.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EndpointPort}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EndpointPort)
        io.kubernetes.client.proto.V1.EndpointPortOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointPort_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EndpointPort_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EndpointPort.class,
                io.kubernetes.client.proto.V1.EndpointPort.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EndpointPort.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointPort_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointPort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointPort.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointPort build() {
        io.kubernetes.client.proto.V1.EndpointPort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointPort buildPartial() {
        io.kubernetes.client.proto.V1.EndpointPort result =
            new io.kubernetes.client.proto.V1.EndpointPort(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.port_ = port_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.protocol_ = protocol_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EndpointPort) {
          return mergeFrom((io.kubernetes.client.proto.V1.EndpointPort) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EndpointPort other) {
        if (other == io.kubernetes.client.proto.V1.EndpointPort.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000004;
          protocol_ = other.protocol_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EndpointPort parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EndpointPort) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of this port (corresponds to ServicePort.Name).
       * Must be a DNS_LABEL.
       * Optional only if one port is defined.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private int port_;
      /**
       *
       *
       * <pre>
       * The port number of the endpoint.
       * </pre>
       *
       * <code>optional int32 port = 2;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The port number of the endpoint.
       * </pre>
       *
       * <code>optional int32 port = 2;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       *
       *
       * <pre>
       * The port number of the endpoint.
       * </pre>
       *
       * <code>optional int32 port = 2;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000002;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The port number of the endpoint.
       * </pre>
       *
       * <code>optional int32 port = 2;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object protocol_ = "";
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protocol_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public com.google.protobuf.ByteString getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public Builder setProtocol(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000004);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port.
       * Must be UDP, TCP, or SCTP.
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 3;</code>
       */
      public Builder setProtocolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        protocol_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EndpointPort)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EndpointPort)
    private static final io.kubernetes.client.proto.V1.EndpointPort DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EndpointPort();
    }

    public static io.kubernetes.client.proto.V1.EndpointPort getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EndpointPort> PARSER =
        new com.google.protobuf.AbstractParser<EndpointPort>() {
          @java.lang.Override
          public EndpointPort parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EndpointPort(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EndpointPort> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EndpointPort> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EndpointPort getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EndpointSubsetOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EndpointSubset)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> getAddressesList();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    io.kubernetes.client.proto.V1.EndpointAddress getAddresses(int index);
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    int getAddressesCount();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
        getAddressesOrBuilderList();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getAddressesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> getNotReadyAddressesList();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    io.kubernetes.client.proto.V1.EndpointAddress getNotReadyAddresses(int index);
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    int getNotReadyAddressesCount();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
        getNotReadyAddressesOrBuilderList();
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getNotReadyAddressesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EndpointPort> getPortsList();
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    io.kubernetes.client.proto.V1.EndpointPort getPorts(int index);
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    int getPortsCount();
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EndpointPortOrBuilder>
        getPortsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    io.kubernetes.client.proto.V1.EndpointPortOrBuilder getPortsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * EndpointSubset is a group of addresses with a common set of ports. The
   * expanded set of endpoints is the Cartesian product of Addresses x Ports.
   * For example, given:
   *   {
   *     Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
   *     Ports:     [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
   *   }
   * The resulting set of endpoints can be viewed as:
   *     a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
   *     b: [ 10.10.1.1:309, 10.10.2.2:309 ]
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EndpointSubset}
   */
  public static final class EndpointSubset extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EndpointSubset)
      EndpointSubsetOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EndpointSubset.newBuilder() to construct.
    private EndpointSubset(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EndpointSubset() {
      addresses_ = java.util.Collections.emptyList();
      notReadyAddresses_ = java.util.Collections.emptyList();
      ports_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EndpointSubset(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  addresses_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointAddress>();
                  mutable_bitField0_ |= 0x00000001;
                }
                addresses_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EndpointAddress.PARSER, extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  notReadyAddresses_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointAddress>();
                  mutable_bitField0_ |= 0x00000002;
                }
                notReadyAddresses_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EndpointAddress.PARSER, extensionRegistry));
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointPort>();
                  mutable_bitField0_ |= 0x00000004;
                }
                ports_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EndpointPort.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          addresses_ = java.util.Collections.unmodifiableList(addresses_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          notReadyAddresses_ = java.util.Collections.unmodifiableList(notReadyAddresses_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          ports_ = java.util.Collections.unmodifiableList(ports_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EndpointSubset_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EndpointSubset.class,
              io.kubernetes.client.proto.V1.EndpointSubset.Builder.class);
    }

    public static final int ADDRESSES_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> addresses_;
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> getAddressesList() {
      return addresses_;
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
        getAddressesOrBuilderList() {
      return addresses_;
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    public int getAddressesCount() {
      return addresses_.size();
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointAddress getAddresses(int index) {
      return addresses_.get(index);
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports that are marked as ready. These endpoints
     * should be considered safe for load balancers and clients to utilize.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getAddressesOrBuilder(int index) {
      return addresses_.get(index);
    }

    public static final int NOTREADYADDRESSES_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> notReadyAddresses_;
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress>
        getNotReadyAddressesList() {
      return notReadyAddresses_;
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
        getNotReadyAddressesOrBuilderList() {
      return notReadyAddresses_;
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    public int getNotReadyAddressesCount() {
      return notReadyAddresses_.size();
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointAddress getNotReadyAddresses(int index) {
      return notReadyAddresses_.get(index);
    }
    /**
     *
     *
     * <pre>
     * IP addresses which offer the related ports but are not currently marked as ready
     * because they have not yet finished starting, have recently failed a readiness check,
     * or have recently failed a liveness check.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getNotReadyAddressesOrBuilder(
        int index) {
      return notReadyAddresses_.get(index);
    }

    public static final int PORTS_FIELD_NUMBER = 3;
    private java.util.List<io.kubernetes.client.proto.V1.EndpointPort> ports_;
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EndpointPort> getPortsList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointPortOrBuilder>
        getPortsOrBuilderList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    public int getPortsCount() {
      return ports_.size();
    }
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointPort getPorts(int index) {
      return ports_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Port numbers available on the related IP addresses.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointPortOrBuilder getPortsOrBuilder(int index) {
      return ports_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < addresses_.size(); i++) {
        output.writeMessage(1, addresses_.get(i));
      }
      for (int i = 0; i < notReadyAddresses_.size(); i++) {
        output.writeMessage(2, notReadyAddresses_.get(i));
      }
      for (int i = 0; i < ports_.size(); i++) {
        output.writeMessage(3, ports_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < addresses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, addresses_.get(i));
      }
      for (int i = 0; i < notReadyAddresses_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(2, notReadyAddresses_.get(i));
      }
      for (int i = 0; i < ports_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, ports_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EndpointSubset)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EndpointSubset other =
          (io.kubernetes.client.proto.V1.EndpointSubset) obj;

      boolean result = true;
      result = result && getAddressesList().equals(other.getAddressesList());
      result = result && getNotReadyAddressesList().equals(other.getNotReadyAddressesList());
      result = result && getPortsList().equals(other.getPortsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getAddressesCount() > 0) {
        hash = (37 * hash) + ADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getAddressesList().hashCode();
      }
      if (getNotReadyAddressesCount() > 0) {
        hash = (37 * hash) + NOTREADYADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getNotReadyAddressesList().hashCode();
      }
      if (getPortsCount() > 0) {
        hash = (37 * hash) + PORTS_FIELD_NUMBER;
        hash = (53 * hash) + getPortsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EndpointSubset prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EndpointSubset is a group of addresses with a common set of ports. The
     * expanded set of endpoints is the Cartesian product of Addresses x Ports.
     * For example, given:
     *   {
     *     Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
     *     Ports:     [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
     *   }
     * The resulting set of endpoints can be viewed as:
     *     a: [ 10.10.1.1:8675, 10.10.2.2:8675 ],
     *     b: [ 10.10.1.1:309, 10.10.2.2:309 ]
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EndpointSubset}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EndpointSubset)
        io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EndpointSubset_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EndpointSubset.class,
                io.kubernetes.client.proto.V1.EndpointSubset.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EndpointSubset.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getAddressesFieldBuilder();
          getNotReadyAddressesFieldBuilder();
          getPortsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (addressesBuilder_ == null) {
          addresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          addressesBuilder_.clear();
        }
        if (notReadyAddressesBuilder_ == null) {
          notReadyAddresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          notReadyAddressesBuilder_.clear();
        }
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          portsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointSubset getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointSubset.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointSubset build() {
        io.kubernetes.client.proto.V1.EndpointSubset result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointSubset buildPartial() {
        io.kubernetes.client.proto.V1.EndpointSubset result =
            new io.kubernetes.client.proto.V1.EndpointSubset(this);
        int from_bitField0_ = bitField0_;
        if (addressesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            addresses_ = java.util.Collections.unmodifiableList(addresses_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.addresses_ = addresses_;
        } else {
          result.addresses_ = addressesBuilder_.build();
        }
        if (notReadyAddressesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            notReadyAddresses_ = java.util.Collections.unmodifiableList(notReadyAddresses_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.notReadyAddresses_ = notReadyAddresses_;
        } else {
          result.notReadyAddresses_ = notReadyAddressesBuilder_.build();
        }
        if (portsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            ports_ = java.util.Collections.unmodifiableList(ports_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.ports_ = ports_;
        } else {
          result.ports_ = portsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EndpointSubset) {
          return mergeFrom((io.kubernetes.client.proto.V1.EndpointSubset) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EndpointSubset other) {
        if (other == io.kubernetes.client.proto.V1.EndpointSubset.getDefaultInstance()) return this;
        if (addressesBuilder_ == null) {
          if (!other.addresses_.isEmpty()) {
            if (addresses_.isEmpty()) {
              addresses_ = other.addresses_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureAddressesIsMutable();
              addresses_.addAll(other.addresses_);
            }
            onChanged();
          }
        } else {
          if (!other.addresses_.isEmpty()) {
            if (addressesBuilder_.isEmpty()) {
              addressesBuilder_.dispose();
              addressesBuilder_ = null;
              addresses_ = other.addresses_;
              bitField0_ = (bitField0_ & ~0x00000001);
              addressesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAddressesFieldBuilder()
                      : null;
            } else {
              addressesBuilder_.addAllMessages(other.addresses_);
            }
          }
        }
        if (notReadyAddressesBuilder_ == null) {
          if (!other.notReadyAddresses_.isEmpty()) {
            if (notReadyAddresses_.isEmpty()) {
              notReadyAddresses_ = other.notReadyAddresses_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureNotReadyAddressesIsMutable();
              notReadyAddresses_.addAll(other.notReadyAddresses_);
            }
            onChanged();
          }
        } else {
          if (!other.notReadyAddresses_.isEmpty()) {
            if (notReadyAddressesBuilder_.isEmpty()) {
              notReadyAddressesBuilder_.dispose();
              notReadyAddressesBuilder_ = null;
              notReadyAddresses_ = other.notReadyAddresses_;
              bitField0_ = (bitField0_ & ~0x00000002);
              notReadyAddressesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getNotReadyAddressesFieldBuilder()
                      : null;
            } else {
              notReadyAddressesBuilder_.addAllMessages(other.notReadyAddresses_);
            }
          }
        }
        if (portsBuilder_ == null) {
          if (!other.ports_.isEmpty()) {
            if (ports_.isEmpty()) {
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensurePortsIsMutable();
              ports_.addAll(other.ports_);
            }
            onChanged();
          }
        } else {
          if (!other.ports_.isEmpty()) {
            if (portsBuilder_.isEmpty()) {
              portsBuilder_.dispose();
              portsBuilder_ = null;
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000004);
              portsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPortsFieldBuilder()
                      : null;
            } else {
              portsBuilder_.addAllMessages(other.ports_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EndpointSubset parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EndpointSubset) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> addresses_ =
          java.util.Collections.emptyList();

      private void ensureAddressesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          addresses_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointAddress>(addresses_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointAddress,
              io.kubernetes.client.proto.V1.EndpointAddress.Builder,
              io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          addressesBuilder_;

      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> getAddressesList() {
        if (addressesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(addresses_);
        } else {
          return addressesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public int getAddressesCount() {
        if (addressesBuilder_ == null) {
          return addresses_.size();
        } else {
          return addressesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress getAddresses(int index) {
        if (addressesBuilder_ == null) {
          return addresses_.get(index);
        } else {
          return addressesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder setAddresses(int index, io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.set(index, value);
          onChanged();
        } else {
          addressesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder setAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.set(index, builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder addAddresses(io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.add(value);
          onChanged();
        } else {
          addressesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder addAddresses(int index, io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.add(index, value);
          onChanged();
        } else {
          addressesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder addAddresses(
          io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.add(builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder addAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.add(index, builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder addAllAddresses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EndpointAddress> values) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, addresses_);
          onChanged();
        } else {
          addressesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder clearAddresses() {
        if (addressesBuilder_ == null) {
          addresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          addressesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public Builder removeAddresses(int index) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.remove(index);
          onChanged();
        } else {
          addressesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder getAddressesBuilder(int index) {
        return getAddressesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getAddressesOrBuilder(
          int index) {
        if (addressesBuilder_ == null) {
          return addresses_.get(index);
        } else {
          return addressesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          getAddressesOrBuilderList() {
        if (addressesBuilder_ != null) {
          return addressesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(addresses_);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder addAddressesBuilder() {
        return getAddressesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder addAddressesBuilder(int index) {
        return getAddressesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports that are marked as ready. These endpoints
       * should be considered safe for load balancers and clients to utilize.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress addresses = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress.Builder>
          getAddressesBuilderList() {
        return getAddressesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointAddress,
              io.kubernetes.client.proto.V1.EndpointAddress.Builder,
              io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          getAddressesFieldBuilder() {
        if (addressesBuilder_ == null) {
          addressesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EndpointAddress,
                  io.kubernetes.client.proto.V1.EndpointAddress.Builder,
                  io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>(
                  addresses_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          addresses_ = null;
        }
        return addressesBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.EndpointAddress> notReadyAddresses_ =
          java.util.Collections.emptyList();

      private void ensureNotReadyAddressesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          notReadyAddresses_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointAddress>(
                  notReadyAddresses_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointAddress,
              io.kubernetes.client.proto.V1.EndpointAddress.Builder,
              io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          notReadyAddressesBuilder_;

      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress>
          getNotReadyAddressesList() {
        if (notReadyAddressesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(notReadyAddresses_);
        } else {
          return notReadyAddressesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public int getNotReadyAddressesCount() {
        if (notReadyAddressesBuilder_ == null) {
          return notReadyAddresses_.size();
        } else {
          return notReadyAddressesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress getNotReadyAddresses(int index) {
        if (notReadyAddressesBuilder_ == null) {
          return notReadyAddresses_.get(index);
        } else {
          return notReadyAddressesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder setNotReadyAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (notReadyAddressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.set(index, value);
          onChanged();
        } else {
          notReadyAddressesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder setNotReadyAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (notReadyAddressesBuilder_ == null) {
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.set(index, builderForValue.build());
          onChanged();
        } else {
          notReadyAddressesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder addNotReadyAddresses(io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (notReadyAddressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.add(value);
          onChanged();
        } else {
          notReadyAddressesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder addNotReadyAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress value) {
        if (notReadyAddressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.add(index, value);
          onChanged();
        } else {
          notReadyAddressesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder addNotReadyAddresses(
          io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (notReadyAddressesBuilder_ == null) {
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.add(builderForValue.build());
          onChanged();
        } else {
          notReadyAddressesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder addNotReadyAddresses(
          int index, io.kubernetes.client.proto.V1.EndpointAddress.Builder builderForValue) {
        if (notReadyAddressesBuilder_ == null) {
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.add(index, builderForValue.build());
          onChanged();
        } else {
          notReadyAddressesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder addAllNotReadyAddresses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EndpointAddress> values) {
        if (notReadyAddressesBuilder_ == null) {
          ensureNotReadyAddressesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, notReadyAddresses_);
          onChanged();
        } else {
          notReadyAddressesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder clearNotReadyAddresses() {
        if (notReadyAddressesBuilder_ == null) {
          notReadyAddresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          notReadyAddressesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public Builder removeNotReadyAddresses(int index) {
        if (notReadyAddressesBuilder_ == null) {
          ensureNotReadyAddressesIsMutable();
          notReadyAddresses_.remove(index);
          onChanged();
        } else {
          notReadyAddressesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder getNotReadyAddressesBuilder(
          int index) {
        return getNotReadyAddressesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddressOrBuilder getNotReadyAddressesOrBuilder(
          int index) {
        if (notReadyAddressesBuilder_ == null) {
          return notReadyAddresses_.get(index);
        } else {
          return notReadyAddressesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          getNotReadyAddressesOrBuilderList() {
        if (notReadyAddressesBuilder_ != null) {
          return notReadyAddressesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(notReadyAddresses_);
        }
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder addNotReadyAddressesBuilder() {
        return getNotReadyAddressesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointAddress.Builder addNotReadyAddressesBuilder(
          int index) {
        return getNotReadyAddressesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EndpointAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * IP addresses which offer the related ports but are not currently marked as ready
       * because they have not yet finished starting, have recently failed a readiness check,
       * or have recently failed a liveness check.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointAddress notReadyAddresses = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointAddress.Builder>
          getNotReadyAddressesBuilderList() {
        return getNotReadyAddressesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointAddress,
              io.kubernetes.client.proto.V1.EndpointAddress.Builder,
              io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>
          getNotReadyAddressesFieldBuilder() {
        if (notReadyAddressesBuilder_ == null) {
          notReadyAddressesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EndpointAddress,
                  io.kubernetes.client.proto.V1.EndpointAddress.Builder,
                  io.kubernetes.client.proto.V1.EndpointAddressOrBuilder>(
                  notReadyAddresses_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          notReadyAddresses_ = null;
        }
        return notReadyAddressesBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.EndpointPort> ports_ =
          java.util.Collections.emptyList();

      private void ensurePortsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointPort>(ports_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointPort,
              io.kubernetes.client.proto.V1.EndpointPort.Builder,
              io.kubernetes.client.proto.V1.EndpointPortOrBuilder>
          portsBuilder_;

      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointPort> getPortsList() {
        if (portsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ports_);
        } else {
          return portsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public int getPortsCount() {
        if (portsBuilder_ == null) {
          return ports_.size();
        } else {
          return portsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointPort getPorts(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder setPorts(int index, io.kubernetes.client.proto.V1.EndpointPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.set(index, value);
          onChanged();
        } else {
          portsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder setPorts(
          int index, io.kubernetes.client.proto.V1.EndpointPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.set(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.EndpointPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(value);
          onChanged();
        } else {
          portsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder addPorts(int index, io.kubernetes.client.proto.V1.EndpointPort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(index, value);
          onChanged();
        } else {
          portsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.EndpointPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder addPorts(
          int index, io.kubernetes.client.proto.V1.EndpointPort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder addAllPorts(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EndpointPort> values) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, ports_);
          onChanged();
        } else {
          portsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder clearPorts() {
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          portsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public Builder removePorts(int index) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.remove(index);
          onChanged();
        } else {
          portsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointPort.Builder getPortsBuilder(int index) {
        return getPortsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointPortOrBuilder getPortsOrBuilder(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointPortOrBuilder>
          getPortsOrBuilderList() {
        if (portsBuilder_ != null) {
          return portsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ports_);
        }
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointPort.Builder addPortsBuilder() {
        return getPortsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EndpointPort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointPort.Builder addPortsBuilder(int index) {
        return getPortsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EndpointPort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Port numbers available on the related IP addresses.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointPort ports = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointPort.Builder>
          getPortsBuilderList() {
        return getPortsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointPort,
              io.kubernetes.client.proto.V1.EndpointPort.Builder,
              io.kubernetes.client.proto.V1.EndpointPortOrBuilder>
          getPortsFieldBuilder() {
        if (portsBuilder_ == null) {
          portsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EndpointPort,
                  io.kubernetes.client.proto.V1.EndpointPort.Builder,
                  io.kubernetes.client.proto.V1.EndpointPortOrBuilder>(
                  ports_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          ports_ = null;
        }
        return portsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EndpointSubset)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EndpointSubset)
    private static final io.kubernetes.client.proto.V1.EndpointSubset DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EndpointSubset();
    }

    public static io.kubernetes.client.proto.V1.EndpointSubset getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EndpointSubset> PARSER =
        new com.google.protobuf.AbstractParser<EndpointSubset>() {
          @java.lang.Override
          public EndpointSubset parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EndpointSubset(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EndpointSubset> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EndpointSubset> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EndpointSubset getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EndpointsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Endpoints)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.EndpointSubset> getSubsetsList();
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    io.kubernetes.client.proto.V1.EndpointSubset getSubsets(int index);
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    int getSubsetsCount();
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>
        getSubsetsOrBuilderList();
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder getSubsetsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Endpoints is a collection of endpoints that implement the actual service. Example:
   *   Name: "mysvc",
   *   Subsets: [
   *     {
   *       Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
   *       Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
   *     },
   *     {
   *       Addresses: [{"ip": "10.10.3.3"}],
   *       Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
   *     },
   *  ]
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Endpoints}
   */
  public static final class Endpoints extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Endpoints)
      EndpointsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Endpoints.newBuilder() to construct.
    private Endpoints(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Endpoints() {
      subsets_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Endpoints(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  subsets_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointSubset>();
                  mutable_bitField0_ |= 0x00000002;
                }
                subsets_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EndpointSubset.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          subsets_ = java.util.Collections.unmodifiableList(subsets_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Endpoints_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Endpoints_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Endpoints.class,
              io.kubernetes.client.proto.V1.Endpoints.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SUBSETS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.EndpointSubset> subsets_;
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.EndpointSubset> getSubsetsList() {
      return subsets_;
    }
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>
        getSubsetsOrBuilderList() {
      return subsets_;
    }
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    public int getSubsetsCount() {
      return subsets_.size();
    }
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointSubset getSubsets(int index) {
      return subsets_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The set of all endpoints is the union of all subsets. Addresses are placed into
     * subsets according to the IPs they share. A single address with multiple ports,
     * some of which are ready and some of which are not (because they come from
     * different containers) will result in the address being displayed in different
     * subsets for the different ports. No address will appear in both Addresses and
     * NotReadyAddresses in the same subset.
     * Sets of addresses and ports that comprise a service.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder getSubsetsOrBuilder(int index) {
      return subsets_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < subsets_.size(); i++) {
        output.writeMessage(2, subsets_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < subsets_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, subsets_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Endpoints)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Endpoints other = (io.kubernetes.client.proto.V1.Endpoints) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getSubsetsList().equals(other.getSubsetsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getSubsetsCount() > 0) {
        hash = (37 * hash) + SUBSETS_FIELD_NUMBER;
        hash = (53 * hash) + getSubsetsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Endpoints parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Endpoints prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Endpoints is a collection of endpoints that implement the actual service. Example:
     *   Name: "mysvc",
     *   Subsets: [
     *     {
     *       Addresses: [{"ip": "10.10.1.1"}, {"ip": "10.10.2.2"}],
     *       Ports: [{"name": "a", "port": 8675}, {"name": "b", "port": 309}]
     *     },
     *     {
     *       Addresses: [{"ip": "10.10.3.3"}],
     *       Ports: [{"name": "a", "port": 93}, {"name": "b", "port": 76}]
     *     },
     *  ]
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Endpoints}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Endpoints)
        io.kubernetes.client.proto.V1.EndpointsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Endpoints_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Endpoints_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Endpoints.class,
                io.kubernetes.client.proto.V1.Endpoints.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Endpoints.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSubsetsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (subsetsBuilder_ == null) {
          subsets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          subsetsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Endpoints_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Endpoints getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Endpoints.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Endpoints build() {
        io.kubernetes.client.proto.V1.Endpoints result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Endpoints buildPartial() {
        io.kubernetes.client.proto.V1.Endpoints result =
            new io.kubernetes.client.proto.V1.Endpoints(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (subsetsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            subsets_ = java.util.Collections.unmodifiableList(subsets_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.subsets_ = subsets_;
        } else {
          result.subsets_ = subsetsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Endpoints) {
          return mergeFrom((io.kubernetes.client.proto.V1.Endpoints) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Endpoints other) {
        if (other == io.kubernetes.client.proto.V1.Endpoints.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (subsetsBuilder_ == null) {
          if (!other.subsets_.isEmpty()) {
            if (subsets_.isEmpty()) {
              subsets_ = other.subsets_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureSubsetsIsMutable();
              subsets_.addAll(other.subsets_);
            }
            onChanged();
          }
        } else {
          if (!other.subsets_.isEmpty()) {
            if (subsetsBuilder_.isEmpty()) {
              subsetsBuilder_.dispose();
              subsetsBuilder_ = null;
              subsets_ = other.subsets_;
              bitField0_ = (bitField0_ & ~0x00000002);
              subsetsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getSubsetsFieldBuilder()
                      : null;
            } else {
              subsetsBuilder_.addAllMessages(other.subsets_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Endpoints parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Endpoints) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.EndpointSubset> subsets_ =
          java.util.Collections.emptyList();

      private void ensureSubsetsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          subsets_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.EndpointSubset>(subsets_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointSubset,
              io.kubernetes.client.proto.V1.EndpointSubset.Builder,
              io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>
          subsetsBuilder_;

      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointSubset> getSubsetsList() {
        if (subsetsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(subsets_);
        } else {
          return subsetsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public int getSubsetsCount() {
        if (subsetsBuilder_ == null) {
          return subsets_.size();
        } else {
          return subsetsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointSubset getSubsets(int index) {
        if (subsetsBuilder_ == null) {
          return subsets_.get(index);
        } else {
          return subsetsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder setSubsets(int index, io.kubernetes.client.proto.V1.EndpointSubset value) {
        if (subsetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsetsIsMutable();
          subsets_.set(index, value);
          onChanged();
        } else {
          subsetsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder setSubsets(
          int index, io.kubernetes.client.proto.V1.EndpointSubset.Builder builderForValue) {
        if (subsetsBuilder_ == null) {
          ensureSubsetsIsMutable();
          subsets_.set(index, builderForValue.build());
          onChanged();
        } else {
          subsetsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder addSubsets(io.kubernetes.client.proto.V1.EndpointSubset value) {
        if (subsetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsetsIsMutable();
          subsets_.add(value);
          onChanged();
        } else {
          subsetsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder addSubsets(int index, io.kubernetes.client.proto.V1.EndpointSubset value) {
        if (subsetsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSubsetsIsMutable();
          subsets_.add(index, value);
          onChanged();
        } else {
          subsetsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder addSubsets(
          io.kubernetes.client.proto.V1.EndpointSubset.Builder builderForValue) {
        if (subsetsBuilder_ == null) {
          ensureSubsetsIsMutable();
          subsets_.add(builderForValue.build());
          onChanged();
        } else {
          subsetsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder addSubsets(
          int index, io.kubernetes.client.proto.V1.EndpointSubset.Builder builderForValue) {
        if (subsetsBuilder_ == null) {
          ensureSubsetsIsMutable();
          subsets_.add(index, builderForValue.build());
          onChanged();
        } else {
          subsetsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder addAllSubsets(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.EndpointSubset> values) {
        if (subsetsBuilder_ == null) {
          ensureSubsetsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, subsets_);
          onChanged();
        } else {
          subsetsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder clearSubsets() {
        if (subsetsBuilder_ == null) {
          subsets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          subsetsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public Builder removeSubsets(int index) {
        if (subsetsBuilder_ == null) {
          ensureSubsetsIsMutable();
          subsets_.remove(index);
          onChanged();
        } else {
          subsetsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointSubset.Builder getSubsetsBuilder(int index) {
        return getSubsetsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder getSubsetsOrBuilder(int index) {
        if (subsetsBuilder_ == null) {
          return subsets_.get(index);
        } else {
          return subsetsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>
          getSubsetsOrBuilderList() {
        if (subsetsBuilder_ != null) {
          return subsetsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(subsets_);
        }
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointSubset.Builder addSubsetsBuilder() {
        return getSubsetsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.EndpointSubset.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointSubset.Builder addSubsetsBuilder(int index) {
        return getSubsetsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.EndpointSubset.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The set of all endpoints is the union of all subsets. Addresses are placed into
       * subsets according to the IPs they share. A single address with multiple ports,
       * some of which are ready and some of which are not (because they come from
       * different containers) will result in the address being displayed in different
       * subsets for the different ports. No address will appear in both Addresses and
       * NotReadyAddresses in the same subset.
       * Sets of addresses and ports that comprise a service.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.EndpointSubset subsets = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.EndpointSubset.Builder>
          getSubsetsBuilderList() {
        return getSubsetsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.EndpointSubset,
              io.kubernetes.client.proto.V1.EndpointSubset.Builder,
              io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>
          getSubsetsFieldBuilder() {
        if (subsetsBuilder_ == null) {
          subsetsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EndpointSubset,
                  io.kubernetes.client.proto.V1.EndpointSubset.Builder,
                  io.kubernetes.client.proto.V1.EndpointSubsetOrBuilder>(
                  subsets_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          subsets_ = null;
        }
        return subsetsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Endpoints)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Endpoints)
    private static final io.kubernetes.client.proto.V1.Endpoints DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Endpoints();
    }

    public static io.kubernetes.client.proto.V1.Endpoints getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Endpoints> PARSER =
        new com.google.protobuf.AbstractParser<Endpoints>() {
          @java.lang.Override
          public Endpoints parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Endpoints(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Endpoints> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Endpoints> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Endpoints getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EndpointsListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EndpointsList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Endpoints> getItemsList();
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Endpoints getItems(int index);
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EndpointsOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    io.kubernetes.client.proto.V1.EndpointsOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * EndpointsList is a list of endpoints.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EndpointsList}
   */
  public static final class EndpointsList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EndpointsList)
      EndpointsListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EndpointsList.newBuilder() to construct.
    private EndpointsList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EndpointsList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EndpointsList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Endpoints>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Endpoints.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EndpointsList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EndpointsList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EndpointsList.class,
              io.kubernetes.client.proto.V1.EndpointsList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Endpoints> items_;
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Endpoints> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointsOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Endpoints getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of endpoints.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EndpointsOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EndpointsList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EndpointsList other =
          (io.kubernetes.client.proto.V1.EndpointsList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EndpointsList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EndpointsList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EndpointsList is a list of endpoints.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EndpointsList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EndpointsList)
        io.kubernetes.client.proto.V1.EndpointsListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointsList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EndpointsList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EndpointsList.class,
                io.kubernetes.client.proto.V1.EndpointsList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EndpointsList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EndpointsList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointsList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EndpointsList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointsList build() {
        io.kubernetes.client.proto.V1.EndpointsList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EndpointsList buildPartial() {
        io.kubernetes.client.proto.V1.EndpointsList result =
            new io.kubernetes.client.proto.V1.EndpointsList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EndpointsList) {
          return mergeFrom((io.kubernetes.client.proto.V1.EndpointsList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EndpointsList other) {
        if (other == io.kubernetes.client.proto.V1.EndpointsList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EndpointsList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EndpointsList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Endpoints> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Endpoints>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Endpoints,
              io.kubernetes.client.proto.V1.Endpoints.Builder,
              io.kubernetes.client.proto.V1.EndpointsOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Endpoints> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Endpoints getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Endpoints value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Endpoints.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Endpoints value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Endpoints value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Endpoints.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Endpoints.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Endpoints> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Endpoints.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EndpointsOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EndpointsOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Endpoints.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Endpoints.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Endpoints.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Endpoints.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of endpoints.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Endpoints items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Endpoints.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Endpoints,
              io.kubernetes.client.proto.V1.Endpoints.Builder,
              io.kubernetes.client.proto.V1.EndpointsOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Endpoints,
                  io.kubernetes.client.proto.V1.Endpoints.Builder,
                  io.kubernetes.client.proto.V1.EndpointsOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EndpointsList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EndpointsList)
    private static final io.kubernetes.client.proto.V1.EndpointsList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EndpointsList();
    }

    public static io.kubernetes.client.proto.V1.EndpointsList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EndpointsList> PARSER =
        new com.google.protobuf.AbstractParser<EndpointsList>() {
          @java.lang.Override
          public EndpointsList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EndpointsList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EndpointsList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EndpointsList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EndpointsList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EnvFromSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EnvFromSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    boolean hasPrefix();
    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    java.lang.String getPrefix();
    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    com.google.protobuf.ByteString getPrefixBytes();

    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    boolean hasConfigMapRef();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapEnvSource getConfigMapRef();
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder getConfigMapRefOrBuilder();

    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretEnvSource getSecretRef();
    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder getSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * EnvFromSource represents the source of a set of ConfigMaps
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EnvFromSource}
   */
  public static final class EnvFromSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EnvFromSource)
      EnvFromSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EnvFromSource.newBuilder() to construct.
    private EnvFromSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EnvFromSource() {
      prefix_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EnvFromSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                prefix_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = configMapRef_.toBuilder();
                }
                configMapRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMapEnvSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configMapRef_);
                  configMapRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.SecretEnvSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretEnvSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EnvFromSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EnvFromSource.class,
              io.kubernetes.client.proto.V1.EnvFromSource.Builder.class);
    }

    private int bitField0_;
    public static final int PREFIX_FIELD_NUMBER = 1;
    private volatile java.lang.Object prefix_;
    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    public boolean hasPrefix() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    public java.lang.String getPrefix() {
      java.lang.Object ref = prefix_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          prefix_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
     * +optional
     * </pre>
     *
     * <code>optional string prefix = 1;</code>
     */
    public com.google.protobuf.ByteString getPrefixBytes() {
      java.lang.Object ref = prefix_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        prefix_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONFIGMAPREF_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ConfigMapEnvSource configMapRef_;
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    public boolean hasConfigMapRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapEnvSource getConfigMapRef() {
      return configMapRef_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance()
          : configMapRef_;
    }
    /**
     *
     *
     * <pre>
     * The ConfigMap to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder getConfigMapRefOrBuilder() {
      return configMapRef_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance()
          : configMapRef_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.SecretEnvSource secretRef_;
    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretEnvSource getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * The Secret to select from
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance()
          : secretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, prefix_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getConfigMapRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, prefix_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConfigMapRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EnvFromSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EnvFromSource other =
          (io.kubernetes.client.proto.V1.EnvFromSource) obj;

      boolean result = true;
      result = result && (hasPrefix() == other.hasPrefix());
      if (hasPrefix()) {
        result = result && getPrefix().equals(other.getPrefix());
      }
      result = result && (hasConfigMapRef() == other.hasConfigMapRef());
      if (hasConfigMapRef()) {
        result = result && getConfigMapRef().equals(other.getConfigMapRef());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPrefix()) {
        hash = (37 * hash) + PREFIX_FIELD_NUMBER;
        hash = (53 * hash) + getPrefix().hashCode();
      }
      if (hasConfigMapRef()) {
        hash = (37 * hash) + CONFIGMAPREF_FIELD_NUMBER;
        hash = (53 * hash) + getConfigMapRef().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EnvFromSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EnvFromSource represents the source of a set of ConfigMaps
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EnvFromSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EnvFromSource)
        io.kubernetes.client.proto.V1.EnvFromSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EnvFromSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EnvFromSource.class,
                io.kubernetes.client.proto.V1.EnvFromSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EnvFromSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConfigMapRefFieldBuilder();
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        prefix_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (configMapRefBuilder_ == null) {
          configMapRef_ = null;
        } else {
          configMapRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvFromSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvFromSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvFromSource build() {
        io.kubernetes.client.proto.V1.EnvFromSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvFromSource buildPartial() {
        io.kubernetes.client.proto.V1.EnvFromSource result =
            new io.kubernetes.client.proto.V1.EnvFromSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.prefix_ = prefix_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (configMapRefBuilder_ == null) {
          result.configMapRef_ = configMapRef_;
        } else {
          result.configMapRef_ = configMapRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EnvFromSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.EnvFromSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EnvFromSource other) {
        if (other == io.kubernetes.client.proto.V1.EnvFromSource.getDefaultInstance()) return this;
        if (other.hasPrefix()) {
          bitField0_ |= 0x00000001;
          prefix_ = other.prefix_;
          onChanged();
        }
        if (other.hasConfigMapRef()) {
          mergeConfigMapRef(other.getConfigMapRef());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EnvFromSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EnvFromSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object prefix_ = "";
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public boolean hasPrefix() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public java.lang.String getPrefix() {
        java.lang.Object ref = prefix_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            prefix_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public com.google.protobuf.ByteString getPrefixBytes() {
        java.lang.Object ref = prefix_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          prefix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public Builder setPrefix(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        prefix_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public Builder clearPrefix() {
        bitField0_ = (bitField0_ & ~0x00000001);
        prefix_ = getDefaultInstance().getPrefix();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.
       * +optional
       * </pre>
       *
       * <code>optional string prefix = 1;</code>
       */
      public Builder setPrefixBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        prefix_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ConfigMapEnvSource configMapRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapEnvSource,
              io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder>
          configMapRefBuilder_;
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public boolean hasConfigMapRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapEnvSource getConfigMapRef() {
        if (configMapRefBuilder_ == null) {
          return configMapRef_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance()
              : configMapRef_;
        } else {
          return configMapRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public Builder setConfigMapRef(io.kubernetes.client.proto.V1.ConfigMapEnvSource value) {
        if (configMapRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configMapRef_ = value;
          onChanged();
        } else {
          configMapRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public Builder setConfigMapRef(
          io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder builderForValue) {
        if (configMapRefBuilder_ == null) {
          configMapRef_ = builderForValue.build();
          onChanged();
        } else {
          configMapRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public Builder mergeConfigMapRef(io.kubernetes.client.proto.V1.ConfigMapEnvSource value) {
        if (configMapRefBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && configMapRef_ != null
              && configMapRef_
                  != io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance()) {
            configMapRef_ =
                io.kubernetes.client.proto.V1.ConfigMapEnvSource.newBuilder(configMapRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configMapRef_ = value;
          }
          onChanged();
        } else {
          configMapRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public Builder clearConfigMapRef() {
        if (configMapRefBuilder_ == null) {
          configMapRef_ = null;
          onChanged();
        } else {
          configMapRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder getConfigMapRefBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getConfigMapRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder getConfigMapRefOrBuilder() {
        if (configMapRefBuilder_ != null) {
          return configMapRefBuilder_.getMessageOrBuilder();
        } else {
          return configMapRef_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapEnvSource.getDefaultInstance()
              : configMapRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * The ConfigMap to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapEnvSource configMapRef = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapEnvSource,
              io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder>
          getConfigMapRefFieldBuilder() {
        if (configMapRefBuilder_ == null) {
          configMapRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMapEnvSource,
                  io.kubernetes.client.proto.V1.ConfigMapEnvSource.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapEnvSourceOrBuilder>(
                  getConfigMapRef(), getParentForChildren(), isClean());
          configMapRef_ = null;
        }
        return configMapRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.SecretEnvSource secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretEnvSource,
              io.kubernetes.client.proto.V1.SecretEnvSource.Builder,
              io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretEnvSource getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretEnvSource value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretEnvSource.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretEnvSource value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretEnvSource.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretEnvSource.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretEnvSource secretRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretEnvSource,
              io.kubernetes.client.proto.V1.SecretEnvSource.Builder,
              io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretEnvSource,
                  io.kubernetes.client.proto.V1.SecretEnvSource.Builder,
                  io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EnvFromSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EnvFromSource)
    private static final io.kubernetes.client.proto.V1.EnvFromSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EnvFromSource();
    }

    public static io.kubernetes.client.proto.V1.EnvFromSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EnvFromSource> PARSER =
        new com.google.protobuf.AbstractParser<EnvFromSource>() {
          @java.lang.Override
          public EnvFromSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EnvFromSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EnvFromSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EnvFromSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EnvFromSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EnvVarOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EnvVar)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString getValueBytes();

    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    boolean hasValueFrom();
    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    io.kubernetes.client.proto.V1.EnvVarSource getValueFrom();
    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder getValueFromOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * EnvVar represents an environment variable present in a Container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EnvVar}
   */
  public static final class EnvVar extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EnvVar)
      EnvVarOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EnvVar.newBuilder() to construct.
    private EnvVar(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EnvVar() {
      name_ = "";
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EnvVar(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                value_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.EnvVarSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = valueFrom_.toBuilder();
                }
                valueFrom_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EnvVarSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(valueFrom_);
                  valueFrom_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvVar_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EnvVar_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EnvVar.class,
              io.kubernetes.client.proto.V1.EnvVar.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the environment variable. Must be a C_IDENTIFIER.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Variable references $(VAR_NAME) are expanded
     * using the previous defined environment variables in the container and
     * any service environment variables. If a variable cannot be resolved,
     * the reference in the input string will be unchanged. The $(VAR_NAME)
     * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
     * references will never be expanded, regardless of whether the variable
     * exists or not.
     * Defaults to "".
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUEFROM_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.EnvVarSource valueFrom_;
    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    public boolean hasValueFrom() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    public io.kubernetes.client.proto.V1.EnvVarSource getValueFrom() {
      return valueFrom_ == null
          ? io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()
          : valueFrom_;
    }
    /**
     *
     *
     * <pre>
     * Source for the environment variable's value. Cannot be used if value is not empty.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
     */
    public io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder getValueFromOrBuilder() {
      return valueFrom_ == null
          ? io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()
          : valueFrom_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getValueFrom());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getValueFrom());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EnvVar)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EnvVar other = (io.kubernetes.client.proto.V1.EnvVar) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && (hasValueFrom() == other.hasValueFrom());
      if (hasValueFrom()) {
        result = result && getValueFrom().equals(other.getValueFrom());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasValueFrom()) {
        hash = (37 * hash) + VALUEFROM_FIELD_NUMBER;
        hash = (53 * hash) + getValueFrom().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVar parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EnvVar prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EnvVar represents an environment variable present in a Container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EnvVar}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EnvVar)
        io.kubernetes.client.proto.V1.EnvVarOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvVar_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EnvVar_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EnvVar.class,
                io.kubernetes.client.proto.V1.EnvVar.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EnvVar.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getValueFromFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (valueFromBuilder_ == null) {
          valueFrom_ = null;
        } else {
          valueFromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EnvVar_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVar getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvVar.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVar build() {
        io.kubernetes.client.proto.V1.EnvVar result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVar buildPartial() {
        io.kubernetes.client.proto.V1.EnvVar result =
            new io.kubernetes.client.proto.V1.EnvVar(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (valueFromBuilder_ == null) {
          result.valueFrom_ = valueFrom_;
        } else {
          result.valueFrom_ = valueFromBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EnvVar) {
          return mergeFrom((io.kubernetes.client.proto.V1.EnvVar) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EnvVar other) {
        if (other == io.kubernetes.client.proto.V1.EnvVar.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        if (other.hasValueFrom()) {
          mergeValueFrom(other.getValueFrom());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EnvVar parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EnvVar) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the environment variable. Must be a C_IDENTIFIER.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Variable references $(VAR_NAME) are expanded
       * using the previous defined environment variables in the container and
       * any service environment variables. If a variable cannot be resolved,
       * the reference in the input string will be unchanged. The $(VAR_NAME)
       * syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
       * references will never be expanded, regardless of whether the variable
       * exists or not.
       * Defaults to "".
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.EnvVarSource valueFrom_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvVarSource,
              io.kubernetes.client.proto.V1.EnvVarSource.Builder,
              io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder>
          valueFromBuilder_;
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public boolean hasValueFrom() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVarSource getValueFrom() {
        if (valueFromBuilder_ == null) {
          return valueFrom_ == null
              ? io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()
              : valueFrom_;
        } else {
          return valueFromBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public Builder setValueFrom(io.kubernetes.client.proto.V1.EnvVarSource value) {
        if (valueFromBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          valueFrom_ = value;
          onChanged();
        } else {
          valueFromBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public Builder setValueFrom(
          io.kubernetes.client.proto.V1.EnvVarSource.Builder builderForValue) {
        if (valueFromBuilder_ == null) {
          valueFrom_ = builderForValue.build();
          onChanged();
        } else {
          valueFromBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public Builder mergeValueFrom(io.kubernetes.client.proto.V1.EnvVarSource value) {
        if (valueFromBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && valueFrom_ != null
              && valueFrom_ != io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()) {
            valueFrom_ =
                io.kubernetes.client.proto.V1.EnvVarSource.newBuilder(valueFrom_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            valueFrom_ = value;
          }
          onChanged();
        } else {
          valueFromBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public Builder clearValueFrom() {
        if (valueFromBuilder_ == null) {
          valueFrom_ = null;
          onChanged();
        } else {
          valueFromBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVarSource.Builder getValueFromBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getValueFromFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      public io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder getValueFromOrBuilder() {
        if (valueFromBuilder_ != null) {
          return valueFromBuilder_.getMessageOrBuilder();
        } else {
          return valueFrom_ == null
              ? io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()
              : valueFrom_;
        }
      }
      /**
       *
       *
       * <pre>
       * Source for the environment variable's value. Cannot be used if value is not empty.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EnvVarSource valueFrom = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EnvVarSource,
              io.kubernetes.client.proto.V1.EnvVarSource.Builder,
              io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder>
          getValueFromFieldBuilder() {
        if (valueFromBuilder_ == null) {
          valueFromBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EnvVarSource,
                  io.kubernetes.client.proto.V1.EnvVarSource.Builder,
                  io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder>(
                  getValueFrom(), getParentForChildren(), isClean());
          valueFrom_ = null;
        }
        return valueFromBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EnvVar)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EnvVar)
    private static final io.kubernetes.client.proto.V1.EnvVar DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EnvVar();
    }

    public static io.kubernetes.client.proto.V1.EnvVar getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EnvVar> PARSER =
        new com.google.protobuf.AbstractParser<EnvVar>() {
          @java.lang.Override
          public EnvVar parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EnvVar(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EnvVar> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EnvVar> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EnvVar getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EnvVarSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EnvVarSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    boolean hasFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    boolean hasResourceFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef();
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder getResourceFieldRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    boolean hasConfigMapKeyRef();
    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapKeySelector getConfigMapKeyRef();
    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder getConfigMapKeyRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    boolean hasSecretKeyRef();
    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.SecretKeySelector getSecretKeyRef();
    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder getSecretKeyRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * EnvVarSource represents a source for the value of an EnvVar.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EnvVarSource}
   */
  public static final class EnvVarSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EnvVarSource)
      EnvVarSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EnvVarSource.newBuilder() to construct.
    private EnvVarSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EnvVarSource() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EnvVarSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = fieldRef_.toBuilder();
                }
                fieldRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectFieldSelector.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fieldRef_);
                  fieldRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = resourceFieldRef_.toBuilder();
                }
                resourceFieldRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceFieldSelector.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resourceFieldRef_);
                  resourceFieldRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = configMapKeyRef_.toBuilder();
                }
                configMapKeyRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMapKeySelector.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configMapKeyRef_);
                  configMapKeyRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.SecretKeySelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = secretKeyRef_.toBuilder();
                }
                secretKeyRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretKeySelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretKeyRef_);
                  secretKeyRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EnvVarSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EnvVarSource.class,
              io.kubernetes.client.proto.V1.EnvVarSource.Builder.class);
    }

    private int bitField0_;
    public static final int FIELDREF_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.ObjectFieldSelector fieldRef_;
    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    public boolean hasFieldRef() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef() {
      return fieldRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
          : fieldRef_;
    }
    /**
     *
     *
     * <pre>
     * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
     * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder() {
      return fieldRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
          : fieldRef_;
    }

    public static final int RESOURCEFIELDREF_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ResourceFieldSelector resourceFieldRef_;
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    public boolean hasResourceFieldRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef() {
      return resourceFieldRef_ == null
          ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
          : resourceFieldRef_;
    }
    /**
     *
     *
     * <pre>
     * Selects a resource of the container: only resources limits and requests
     * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder
        getResourceFieldRefOrBuilder() {
      return resourceFieldRef_ == null
          ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
          : resourceFieldRef_;
    }

    public static final int CONFIGMAPKEYREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ConfigMapKeySelector configMapKeyRef_;
    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    public boolean hasConfigMapKeyRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapKeySelector getConfigMapKeyRef() {
      return configMapKeyRef_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance()
          : configMapKeyRef_;
    }
    /**
     *
     *
     * <pre>
     * Selects a key of a ConfigMap.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder
        getConfigMapKeyRefOrBuilder() {
      return configMapKeyRef_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance()
          : configMapKeyRef_;
    }

    public static final int SECRETKEYREF_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.SecretKeySelector secretKeyRef_;
    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    public boolean hasSecretKeyRef() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.SecretKeySelector getSecretKeyRef() {
      return secretKeyRef_ == null
          ? io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance()
          : secretKeyRef_;
    }
    /**
     *
     *
     * <pre>
     * Selects a key of a secret in the pod's namespace
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder getSecretKeyRefOrBuilder() {
      return secretKeyRef_ == null
          ? io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance()
          : secretKeyRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getFieldRef());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getResourceFieldRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getConfigMapKeyRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getSecretKeyRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getFieldRef());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getResourceFieldRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getConfigMapKeyRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSecretKeyRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EnvVarSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EnvVarSource other =
          (io.kubernetes.client.proto.V1.EnvVarSource) obj;

      boolean result = true;
      result = result && (hasFieldRef() == other.hasFieldRef());
      if (hasFieldRef()) {
        result = result && getFieldRef().equals(other.getFieldRef());
      }
      result = result && (hasResourceFieldRef() == other.hasResourceFieldRef());
      if (hasResourceFieldRef()) {
        result = result && getResourceFieldRef().equals(other.getResourceFieldRef());
      }
      result = result && (hasConfigMapKeyRef() == other.hasConfigMapKeyRef());
      if (hasConfigMapKeyRef()) {
        result = result && getConfigMapKeyRef().equals(other.getConfigMapKeyRef());
      }
      result = result && (hasSecretKeyRef() == other.hasSecretKeyRef());
      if (hasSecretKeyRef()) {
        result = result && getSecretKeyRef().equals(other.getSecretKeyRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasFieldRef()) {
        hash = (37 * hash) + FIELDREF_FIELD_NUMBER;
        hash = (53 * hash) + getFieldRef().hashCode();
      }
      if (hasResourceFieldRef()) {
        hash = (37 * hash) + RESOURCEFIELDREF_FIELD_NUMBER;
        hash = (53 * hash) + getResourceFieldRef().hashCode();
      }
      if (hasConfigMapKeyRef()) {
        hash = (37 * hash) + CONFIGMAPKEYREF_FIELD_NUMBER;
        hash = (53 * hash) + getConfigMapKeyRef().hashCode();
      }
      if (hasSecretKeyRef()) {
        hash = (37 * hash) + SECRETKEYREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretKeyRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EnvVarSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EnvVarSource represents a source for the value of an EnvVar.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EnvVarSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EnvVarSource)
        io.kubernetes.client.proto.V1.EnvVarSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EnvVarSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EnvVarSource.class,
                io.kubernetes.client.proto.V1.EnvVarSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EnvVarSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getFieldRefFieldBuilder();
          getResourceFieldRefFieldBuilder();
          getConfigMapKeyRefFieldBuilder();
          getSecretKeyRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (fieldRefBuilder_ == null) {
          fieldRef_ = null;
        } else {
          fieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = null;
        } else {
          resourceFieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (configMapKeyRefBuilder_ == null) {
          configMapKeyRef_ = null;
        } else {
          configMapKeyRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (secretKeyRefBuilder_ == null) {
          secretKeyRef_ = null;
        } else {
          secretKeyRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVarSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVarSource build() {
        io.kubernetes.client.proto.V1.EnvVarSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EnvVarSource buildPartial() {
        io.kubernetes.client.proto.V1.EnvVarSource result =
            new io.kubernetes.client.proto.V1.EnvVarSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fieldRefBuilder_ == null) {
          result.fieldRef_ = fieldRef_;
        } else {
          result.fieldRef_ = fieldRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (resourceFieldRefBuilder_ == null) {
          result.resourceFieldRef_ = resourceFieldRef_;
        } else {
          result.resourceFieldRef_ = resourceFieldRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (configMapKeyRefBuilder_ == null) {
          result.configMapKeyRef_ = configMapKeyRef_;
        } else {
          result.configMapKeyRef_ = configMapKeyRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (secretKeyRefBuilder_ == null) {
          result.secretKeyRef_ = secretKeyRef_;
        } else {
          result.secretKeyRef_ = secretKeyRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EnvVarSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.EnvVarSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EnvVarSource other) {
        if (other == io.kubernetes.client.proto.V1.EnvVarSource.getDefaultInstance()) return this;
        if (other.hasFieldRef()) {
          mergeFieldRef(other.getFieldRef());
        }
        if (other.hasResourceFieldRef()) {
          mergeResourceFieldRef(other.getResourceFieldRef());
        }
        if (other.hasConfigMapKeyRef()) {
          mergeConfigMapKeyRef(other.getConfigMapKeyRef());
        }
        if (other.hasSecretKeyRef()) {
          mergeSecretKeyRef(other.getSecretKeyRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EnvVarSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EnvVarSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ObjectFieldSelector fieldRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectFieldSelector,
              io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>
          fieldRefBuilder_;
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public boolean hasFieldRef() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelector getFieldRef() {
        if (fieldRefBuilder_ == null) {
          return fieldRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
              : fieldRef_;
        } else {
          return fieldRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public Builder setFieldRef(io.kubernetes.client.proto.V1.ObjectFieldSelector value) {
        if (fieldRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fieldRef_ = value;
          onChanged();
        } else {
          fieldRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public Builder setFieldRef(
          io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder builderForValue) {
        if (fieldRefBuilder_ == null) {
          fieldRef_ = builderForValue.build();
          onChanged();
        } else {
          fieldRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public Builder mergeFieldRef(io.kubernetes.client.proto.V1.ObjectFieldSelector value) {
        if (fieldRefBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && fieldRef_ != null
              && fieldRef_
                  != io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()) {
            fieldRef_ =
                io.kubernetes.client.proto.V1.ObjectFieldSelector.newBuilder(fieldRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            fieldRef_ = value;
          }
          onChanged();
        } else {
          fieldRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public Builder clearFieldRef() {
        if (fieldRefBuilder_ == null) {
          fieldRef_ = null;
          onChanged();
        } else {
          fieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder getFieldRefBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getFieldRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder getFieldRefOrBuilder() {
        if (fieldRefBuilder_ != null) {
          return fieldRefBuilder_.getMessageOrBuilder();
        } else {
          return fieldRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance()
              : fieldRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations,
       * spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectFieldSelector fieldRef = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectFieldSelector,
              io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>
          getFieldRefFieldBuilder() {
        if (fieldRefBuilder_ == null) {
          fieldRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectFieldSelector,
                  io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder,
                  io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder>(
                  getFieldRef(), getParentForChildren(), isClean());
          fieldRef_ = null;
        }
        return fieldRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceFieldSelector resourceFieldRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceFieldSelector,
              io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>
          resourceFieldRefBuilder_;
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public boolean hasResourceFieldRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelector getResourceFieldRef() {
        if (resourceFieldRefBuilder_ == null) {
          return resourceFieldRef_ == null
              ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
              : resourceFieldRef_;
        } else {
          return resourceFieldRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public Builder setResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector value) {
        if (resourceFieldRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resourceFieldRef_ = value;
          onChanged();
        } else {
          resourceFieldRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public Builder setResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder builderForValue) {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = builderForValue.build();
          onChanged();
        } else {
          resourceFieldRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public Builder mergeResourceFieldRef(
          io.kubernetes.client.proto.V1.ResourceFieldSelector value) {
        if (resourceFieldRefBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && resourceFieldRef_ != null
              && resourceFieldRef_
                  != io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()) {
            resourceFieldRef_ =
                io.kubernetes.client.proto.V1.ResourceFieldSelector.newBuilder(resourceFieldRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            resourceFieldRef_ = value;
          }
          onChanged();
        } else {
          resourceFieldRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public Builder clearResourceFieldRef() {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRef_ = null;
          onChanged();
        } else {
          resourceFieldRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder
          getResourceFieldRefBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getResourceFieldRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder
          getResourceFieldRefOrBuilder() {
        if (resourceFieldRefBuilder_ != null) {
          return resourceFieldRefBuilder_.getMessageOrBuilder();
        } else {
          return resourceFieldRef_ == null
              ? io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance()
              : resourceFieldRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a resource of the container: only resources limits and requests
       * (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceFieldSelector resourceFieldRef = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceFieldSelector,
              io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
              io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>
          getResourceFieldRefFieldBuilder() {
        if (resourceFieldRefBuilder_ == null) {
          resourceFieldRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceFieldSelector,
                  io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder,
                  io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder>(
                  getResourceFieldRef(), getParentForChildren(), isClean());
          resourceFieldRef_ = null;
        }
        return resourceFieldRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.ConfigMapKeySelector configMapKeyRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapKeySelector,
              io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder,
              io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder>
          configMapKeyRefBuilder_;
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public boolean hasConfigMapKeyRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapKeySelector getConfigMapKeyRef() {
        if (configMapKeyRefBuilder_ == null) {
          return configMapKeyRef_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance()
              : configMapKeyRef_;
        } else {
          return configMapKeyRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public Builder setConfigMapKeyRef(io.kubernetes.client.proto.V1.ConfigMapKeySelector value) {
        if (configMapKeyRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configMapKeyRef_ = value;
          onChanged();
        } else {
          configMapKeyRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public Builder setConfigMapKeyRef(
          io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder builderForValue) {
        if (configMapKeyRefBuilder_ == null) {
          configMapKeyRef_ = builderForValue.build();
          onChanged();
        } else {
          configMapKeyRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public Builder mergeConfigMapKeyRef(
          io.kubernetes.client.proto.V1.ConfigMapKeySelector value) {
        if (configMapKeyRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && configMapKeyRef_ != null
              && configMapKeyRef_
                  != io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance()) {
            configMapKeyRef_ =
                io.kubernetes.client.proto.V1.ConfigMapKeySelector.newBuilder(configMapKeyRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configMapKeyRef_ = value;
          }
          onChanged();
        } else {
          configMapKeyRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public Builder clearConfigMapKeyRef() {
        if (configMapKeyRefBuilder_ == null) {
          configMapKeyRef_ = null;
          onChanged();
        } else {
          configMapKeyRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder
          getConfigMapKeyRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getConfigMapKeyRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder
          getConfigMapKeyRefOrBuilder() {
        if (configMapKeyRefBuilder_ != null) {
          return configMapKeyRefBuilder_.getMessageOrBuilder();
        } else {
          return configMapKeyRef_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapKeySelector.getDefaultInstance()
              : configMapKeyRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a ConfigMap.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapKeySelector configMapKeyRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapKeySelector,
              io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder,
              io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder>
          getConfigMapKeyRefFieldBuilder() {
        if (configMapKeyRefBuilder_ == null) {
          configMapKeyRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMapKeySelector,
                  io.kubernetes.client.proto.V1.ConfigMapKeySelector.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapKeySelectorOrBuilder>(
                  getConfigMapKeyRef(), getParentForChildren(), isClean());
          configMapKeyRef_ = null;
        }
        return configMapKeyRefBuilder_;
      }

      private io.kubernetes.client.proto.V1.SecretKeySelector secretKeyRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretKeySelector,
              io.kubernetes.client.proto.V1.SecretKeySelector.Builder,
              io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder>
          secretKeyRefBuilder_;
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public boolean hasSecretKeyRef() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretKeySelector getSecretKeyRef() {
        if (secretKeyRefBuilder_ == null) {
          return secretKeyRef_ == null
              ? io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance()
              : secretKeyRef_;
        } else {
          return secretKeyRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public Builder setSecretKeyRef(io.kubernetes.client.proto.V1.SecretKeySelector value) {
        if (secretKeyRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretKeyRef_ = value;
          onChanged();
        } else {
          secretKeyRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public Builder setSecretKeyRef(
          io.kubernetes.client.proto.V1.SecretKeySelector.Builder builderForValue) {
        if (secretKeyRefBuilder_ == null) {
          secretKeyRef_ = builderForValue.build();
          onChanged();
        } else {
          secretKeyRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public Builder mergeSecretKeyRef(io.kubernetes.client.proto.V1.SecretKeySelector value) {
        if (secretKeyRefBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && secretKeyRef_ != null
              && secretKeyRef_
                  != io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance()) {
            secretKeyRef_ =
                io.kubernetes.client.proto.V1.SecretKeySelector.newBuilder(secretKeyRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretKeyRef_ = value;
          }
          onChanged();
        } else {
          secretKeyRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public Builder clearSecretKeyRef() {
        if (secretKeyRefBuilder_ == null) {
          secretKeyRef_ = null;
          onChanged();
        } else {
          secretKeyRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretKeySelector.Builder getSecretKeyRefBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getSecretKeyRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder getSecretKeyRefOrBuilder() {
        if (secretKeyRefBuilder_ != null) {
          return secretKeyRefBuilder_.getMessageOrBuilder();
        } else {
          return secretKeyRef_ == null
              ? io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance()
              : secretKeyRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Selects a key of a secret in the pod's namespace
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretKeySelector secretKeyRef = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretKeySelector,
              io.kubernetes.client.proto.V1.SecretKeySelector.Builder,
              io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder>
          getSecretKeyRefFieldBuilder() {
        if (secretKeyRefBuilder_ == null) {
          secretKeyRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretKeySelector,
                  io.kubernetes.client.proto.V1.SecretKeySelector.Builder,
                  io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder>(
                  getSecretKeyRef(), getParentForChildren(), isClean());
          secretKeyRef_ = null;
        }
        return secretKeyRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EnvVarSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EnvVarSource)
    private static final io.kubernetes.client.proto.V1.EnvVarSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EnvVarSource();
    }

    public static io.kubernetes.client.proto.V1.EnvVarSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EnvVarSource> PARSER =
        new com.google.protobuf.AbstractParser<EnvVarSource>() {
          @java.lang.Override
          public EnvVarSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EnvVarSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EnvVarSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EnvVarSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EnvVarSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EventOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Event)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    boolean hasInvolvedObject();
    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getInvolvedObject();
    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getInvolvedObjectOrBuilder();

    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();

    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    boolean hasSource();
    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    io.kubernetes.client.proto.V1.EventSource getSource();
    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    io.kubernetes.client.proto.V1.EventSourceOrBuilder getSourceOrBuilder();

    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    boolean hasFirstTimestamp();
    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    io.kubernetes.client.proto.Meta.Time getFirstTimestamp();
    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getFirstTimestampOrBuilder();

    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    boolean hasLastTimestamp();
    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTimestamp();
    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTimestampOrBuilder();

    /**
     *
     *
     * <pre>
     * The number of times this event has occurred.
     * +optional
     * </pre>
     *
     * <code>optional int32 count = 8;</code>
     */
    boolean hasCount();
    /**
     *
     *
     * <pre>
     * The number of times this event has occurred.
     * +optional
     * </pre>
     *
     * <code>optional int32 count = 8;</code>
     */
    int getCount();

    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    boolean hasEventTime();
    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    io.kubernetes.client.proto.Meta.MicroTime getEventTime();
    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getEventTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    boolean hasSeries();
    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    io.kubernetes.client.proto.V1.EventSeries getSeries();
    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    io.kubernetes.client.proto.V1.EventSeriesOrBuilder getSeriesOrBuilder();

    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    boolean hasAction();
    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    java.lang.String getAction();
    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    com.google.protobuf.ByteString getActionBytes();

    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    boolean hasRelated();
    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getRelated();
    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getRelatedOrBuilder();

    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    boolean hasReportingComponent();
    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    java.lang.String getReportingComponent();
    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    com.google.protobuf.ByteString getReportingComponentBytes();

    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    boolean hasReportingInstance();
    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    java.lang.String getReportingInstance();
    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    com.google.protobuf.ByteString getReportingInstanceBytes();
  }
  /**
   *
   *
   * <pre>
   * Event is a report of an event somewhere in the cluster.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Event}
   */
  public static final class Event extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Event)
      EventOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Event.newBuilder() to construct.
    private Event(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Event() {
      reason_ = "";
      message_ = "";
      count_ = 0;
      type_ = "";
      action_ = "";
      reportingComponent_ = "";
      reportingInstance_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Event(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = involvedObject_.toBuilder();
                }
                involvedObject_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(involvedObject_);
                  involvedObject_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                reason_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                message_ = bs;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.EventSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = source_.toBuilder();
                }
                source_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EventSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(source_);
                  source_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = firstTimestamp_.toBuilder();
                }
                firstTimestamp_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(firstTimestamp_);
                  firstTimestamp_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = lastTimestamp_.toBuilder();
                }
                lastTimestamp_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTimestamp_);
                  lastTimestamp_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000080;
                count_ = input.readInt32();
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                type_ = bs;
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.Meta.MicroTime.Builder subBuilder = null;
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  subBuilder = eventTime_.toBuilder();
                }
                eventTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.MicroTime.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(eventTime_);
                  eventTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000200;
                break;
              }
            case 90:
              {
                io.kubernetes.client.proto.V1.EventSeries.Builder subBuilder = null;
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  subBuilder = series_.toBuilder();
                }
                series_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EventSeries.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(series_);
                  series_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000400;
                break;
              }
            case 98:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000800;
                action_ = bs;
                break;
              }
            case 106:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00001000) == 0x00001000)) {
                  subBuilder = related_.toBuilder();
                }
                related_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(related_);
                  related_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00001000;
                break;
              }
            case 114:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00002000;
                reportingComponent_ = bs;
                break;
              }
            case 122:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00004000;
                reportingInstance_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Event_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Event_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Event.class,
              io.kubernetes.client.proto.V1.Event.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int INVOLVEDOBJECT_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ObjectReference involvedObject_;
    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    public boolean hasInvolvedObject() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getInvolvedObject() {
      return involvedObject_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : involvedObject_;
    }
    /**
     *
     *
     * <pre>
     * The object that this event is about.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getInvolvedObjectOrBuilder() {
      return involvedObject_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : involvedObject_;
    }

    public static final int REASON_FIELD_NUMBER = 3;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * This should be a short, machine understandable string that gives the reason
     * for the transition into the object's current status.
     * TODO: provide exact specification for format.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * A human-readable description of the status of this operation.
     * TODO: decide on maximum length.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SOURCE_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.EventSource source_;
    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    public boolean hasSource() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    public io.kubernetes.client.proto.V1.EventSource getSource() {
      return source_ == null
          ? io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()
          : source_;
    }
    /**
     *
     *
     * <pre>
     * The component reporting this event. Should be a short machine understandable string.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
     */
    public io.kubernetes.client.proto.V1.EventSourceOrBuilder getSourceOrBuilder() {
      return source_ == null
          ? io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()
          : source_;
    }

    public static final int FIRSTTIMESTAMP_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.Meta.Time firstTimestamp_;
    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    public boolean hasFirstTimestamp() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getFirstTimestamp() {
      return firstTimestamp_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : firstTimestamp_;
    }
    /**
     *
     *
     * <pre>
     * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getFirstTimestampOrBuilder() {
      return firstTimestamp_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : firstTimestamp_;
    }

    public static final int LASTTIMESTAMP_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.Meta.Time lastTimestamp_;
    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    public boolean hasLastTimestamp() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTimestamp() {
      return lastTimestamp_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTimestamp_;
    }
    /**
     *
     *
     * <pre>
     * The time at which the most recent occurrence of this event was recorded.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTimestampOrBuilder() {
      return lastTimestamp_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTimestamp_;
    }

    public static final int COUNT_FIELD_NUMBER = 8;
    private int count_;
    /**
     *
     *
     * <pre>
     * The number of times this event has occurred.
     * +optional
     * </pre>
     *
     * <code>optional int32 count = 8;</code>
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * The number of times this event has occurred.
     * +optional
     * </pre>
     *
     * <code>optional int32 count = 8;</code>
     */
    public int getCount() {
      return count_;
    }

    public static final int TYPE_FIELD_NUMBER = 9;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type of this event (Normal, Warning), new types could be added in the future
     * +optional
     * </pre>
     *
     * <code>optional string type = 9;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EVENTTIME_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.Meta.MicroTime eventTime_;
    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    public boolean hasEventTime() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    public io.kubernetes.client.proto.Meta.MicroTime getEventTime() {
      return eventTime_ == null
          ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
          : eventTime_;
    }
    /**
     *
     *
     * <pre>
     * Time when this Event was first observed.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
     */
    public io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getEventTimeOrBuilder() {
      return eventTime_ == null
          ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
          : eventTime_;
    }

    public static final int SERIES_FIELD_NUMBER = 11;
    private io.kubernetes.client.proto.V1.EventSeries series_;
    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    public boolean hasSeries() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    public io.kubernetes.client.proto.V1.EventSeries getSeries() {
      return series_ == null
          ? io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()
          : series_;
    }
    /**
     *
     *
     * <pre>
     * Data about the Event series this event represents or nil if it's a singleton Event.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
     */
    public io.kubernetes.client.proto.V1.EventSeriesOrBuilder getSeriesOrBuilder() {
      return series_ == null
          ? io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()
          : series_;
    }

    public static final int ACTION_FIELD_NUMBER = 12;
    private volatile java.lang.Object action_;
    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    public boolean hasAction() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    public java.lang.String getAction() {
      java.lang.Object ref = action_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          action_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * What action was taken/failed regarding to the Regarding object.
     * +optional
     * </pre>
     *
     * <code>optional string action = 12;</code>
     */
    public com.google.protobuf.ByteString getActionBytes() {
      java.lang.Object ref = action_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        action_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RELATED_FIELD_NUMBER = 13;
    private io.kubernetes.client.proto.V1.ObjectReference related_;
    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    public boolean hasRelated() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getRelated() {
      return related_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : related_;
    }
    /**
     *
     *
     * <pre>
     * Optional secondary object for more complex actions.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getRelatedOrBuilder() {
      return related_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : related_;
    }

    public static final int REPORTINGCOMPONENT_FIELD_NUMBER = 14;
    private volatile java.lang.Object reportingComponent_;
    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    public boolean hasReportingComponent() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    public java.lang.String getReportingComponent() {
      java.lang.Object ref = reportingComponent_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reportingComponent_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingComponent = 14;</code>
     */
    public com.google.protobuf.ByteString getReportingComponentBytes() {
      java.lang.Object ref = reportingComponent_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reportingComponent_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REPORTINGINSTANCE_FIELD_NUMBER = 15;
    private volatile java.lang.Object reportingInstance_;
    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    public boolean hasReportingInstance() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    public java.lang.String getReportingInstance() {
      java.lang.Object ref = reportingInstance_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reportingInstance_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ID of the controller instance, e.g. `kubelet-xyzf`.
     * +optional
     * </pre>
     *
     * <code>optional string reportingInstance = 15;</code>
     */
    public com.google.protobuf.ByteString getReportingInstanceBytes() {
      java.lang.Object ref = reportingInstance_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reportingInstance_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getInvolvedObject());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, message_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getSource());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, getFirstTimestamp());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, getLastTimestamp());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt32(8, count_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, type_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, getEventTime());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, getSeries());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, action_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(13, getRelated());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 14, reportingComponent_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 15, reportingInstance_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getInvolvedObject());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, message_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSource());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getFirstTimestamp());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getLastTimestamp());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(8, count_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, type_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getEventTime());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getSeries());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, action_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getRelated());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(14, reportingComponent_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(15, reportingInstance_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Event)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Event other = (io.kubernetes.client.proto.V1.Event) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasInvolvedObject() == other.hasInvolvedObject());
      if (hasInvolvedObject()) {
        result = result && getInvolvedObject().equals(other.getInvolvedObject());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && (hasSource() == other.hasSource());
      if (hasSource()) {
        result = result && getSource().equals(other.getSource());
      }
      result = result && (hasFirstTimestamp() == other.hasFirstTimestamp());
      if (hasFirstTimestamp()) {
        result = result && getFirstTimestamp().equals(other.getFirstTimestamp());
      }
      result = result && (hasLastTimestamp() == other.hasLastTimestamp());
      if (hasLastTimestamp()) {
        result = result && getLastTimestamp().equals(other.getLastTimestamp());
      }
      result = result && (hasCount() == other.hasCount());
      if (hasCount()) {
        result = result && (getCount() == other.getCount());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasEventTime() == other.hasEventTime());
      if (hasEventTime()) {
        result = result && getEventTime().equals(other.getEventTime());
      }
      result = result && (hasSeries() == other.hasSeries());
      if (hasSeries()) {
        result = result && getSeries().equals(other.getSeries());
      }
      result = result && (hasAction() == other.hasAction());
      if (hasAction()) {
        result = result && getAction().equals(other.getAction());
      }
      result = result && (hasRelated() == other.hasRelated());
      if (hasRelated()) {
        result = result && getRelated().equals(other.getRelated());
      }
      result = result && (hasReportingComponent() == other.hasReportingComponent());
      if (hasReportingComponent()) {
        result = result && getReportingComponent().equals(other.getReportingComponent());
      }
      result = result && (hasReportingInstance() == other.hasReportingInstance());
      if (hasReportingInstance()) {
        result = result && getReportingInstance().equals(other.getReportingInstance());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasInvolvedObject()) {
        hash = (37 * hash) + INVOLVEDOBJECT_FIELD_NUMBER;
        hash = (53 * hash) + getInvolvedObject().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasSource()) {
        hash = (37 * hash) + SOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getSource().hashCode();
      }
      if (hasFirstTimestamp()) {
        hash = (37 * hash) + FIRSTTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getFirstTimestamp().hashCode();
      }
      if (hasLastTimestamp()) {
        hash = (37 * hash) + LASTTIMESTAMP_FIELD_NUMBER;
        hash = (53 * hash) + getLastTimestamp().hashCode();
      }
      if (hasCount()) {
        hash = (37 * hash) + COUNT_FIELD_NUMBER;
        hash = (53 * hash) + getCount();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasEventTime()) {
        hash = (37 * hash) + EVENTTIME_FIELD_NUMBER;
        hash = (53 * hash) + getEventTime().hashCode();
      }
      if (hasSeries()) {
        hash = (37 * hash) + SERIES_FIELD_NUMBER;
        hash = (53 * hash) + getSeries().hashCode();
      }
      if (hasAction()) {
        hash = (37 * hash) + ACTION_FIELD_NUMBER;
        hash = (53 * hash) + getAction().hashCode();
      }
      if (hasRelated()) {
        hash = (37 * hash) + RELATED_FIELD_NUMBER;
        hash = (53 * hash) + getRelated().hashCode();
      }
      if (hasReportingComponent()) {
        hash = (37 * hash) + REPORTINGCOMPONENT_FIELD_NUMBER;
        hash = (53 * hash) + getReportingComponent().hashCode();
      }
      if (hasReportingInstance()) {
        hash = (37 * hash) + REPORTINGINSTANCE_FIELD_NUMBER;
        hash = (53 * hash) + getReportingInstance().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Event parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Event parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Event parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Event prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Event is a report of an event somewhere in the cluster.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Event}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Event)
        io.kubernetes.client.proto.V1.EventOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Event_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Event_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Event.class,
                io.kubernetes.client.proto.V1.Event.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Event.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getInvolvedObjectFieldBuilder();
          getSourceFieldBuilder();
          getFirstTimestampFieldBuilder();
          getLastTimestampFieldBuilder();
          getEventTimeFieldBuilder();
          getSeriesFieldBuilder();
          getRelatedFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (involvedObjectBuilder_ == null) {
          involvedObject_ = null;
        } else {
          involvedObjectBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (sourceBuilder_ == null) {
          source_ = null;
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (firstTimestampBuilder_ == null) {
          firstTimestamp_ = null;
        } else {
          firstTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (lastTimestampBuilder_ == null) {
          lastTimestamp_ = null;
        } else {
          lastTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        count_ = 0;
        bitField0_ = (bitField0_ & ~0x00000080);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        if (eventTimeBuilder_ == null) {
          eventTime_ = null;
        } else {
          eventTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (seriesBuilder_ == null) {
          series_ = null;
        } else {
          seriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        action_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        if (relatedBuilder_ == null) {
          related_ = null;
        } else {
          relatedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        reportingComponent_ = "";
        bitField0_ = (bitField0_ & ~0x00002000);
        reportingInstance_ = "";
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Event_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Event getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Event.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Event build() {
        io.kubernetes.client.proto.V1.Event result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Event buildPartial() {
        io.kubernetes.client.proto.V1.Event result = new io.kubernetes.client.proto.V1.Event(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (involvedObjectBuilder_ == null) {
          result.involvedObject_ = involvedObject_;
        } else {
          result.involvedObject_ = involvedObjectBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (sourceBuilder_ == null) {
          result.source_ = source_;
        } else {
          result.source_ = sourceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (firstTimestampBuilder_ == null) {
          result.firstTimestamp_ = firstTimestamp_;
        } else {
          result.firstTimestamp_ = firstTimestampBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (lastTimestampBuilder_ == null) {
          result.lastTimestamp_ = lastTimestamp_;
        } else {
          result.lastTimestamp_ = lastTimestampBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.count_ = count_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (eventTimeBuilder_ == null) {
          result.eventTime_ = eventTime_;
        } else {
          result.eventTime_ = eventTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (seriesBuilder_ == null) {
          result.series_ = series_;
        } else {
          result.series_ = seriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.action_ = action_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (relatedBuilder_ == null) {
          result.related_ = related_;
        } else {
          result.related_ = relatedBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.reportingComponent_ = reportingComponent_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.reportingInstance_ = reportingInstance_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Event) {
          return mergeFrom((io.kubernetes.client.proto.V1.Event) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Event other) {
        if (other == io.kubernetes.client.proto.V1.Event.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasInvolvedObject()) {
          mergeInvolvedObject(other.getInvolvedObject());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000004;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000008;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasSource()) {
          mergeSource(other.getSource());
        }
        if (other.hasFirstTimestamp()) {
          mergeFirstTimestamp(other.getFirstTimestamp());
        }
        if (other.hasLastTimestamp()) {
          mergeLastTimestamp(other.getLastTimestamp());
        }
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000100;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasEventTime()) {
          mergeEventTime(other.getEventTime());
        }
        if (other.hasSeries()) {
          mergeSeries(other.getSeries());
        }
        if (other.hasAction()) {
          bitField0_ |= 0x00000800;
          action_ = other.action_;
          onChanged();
        }
        if (other.hasRelated()) {
          mergeRelated(other.getRelated());
        }
        if (other.hasReportingComponent()) {
          bitField0_ |= 0x00002000;
          reportingComponent_ = other.reportingComponent_;
          onChanged();
        }
        if (other.hasReportingInstance()) {
          bitField0_ |= 0x00004000;
          reportingInstance_ = other.reportingInstance_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Event parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Event) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.ObjectReference involvedObject_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          involvedObjectBuilder_;
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public boolean hasInvolvedObject() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getInvolvedObject() {
        if (involvedObjectBuilder_ == null) {
          return involvedObject_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : involvedObject_;
        } else {
          return involvedObjectBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public Builder setInvolvedObject(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (involvedObjectBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          involvedObject_ = value;
          onChanged();
        } else {
          involvedObjectBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public Builder setInvolvedObject(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (involvedObjectBuilder_ == null) {
          involvedObject_ = builderForValue.build();
          onChanged();
        } else {
          involvedObjectBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public Builder mergeInvolvedObject(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (involvedObjectBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && involvedObject_ != null
              && involvedObject_
                  != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            involvedObject_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(involvedObject_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            involvedObject_ = value;
          }
          onChanged();
        } else {
          involvedObjectBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public Builder clearInvolvedObject() {
        if (involvedObjectBuilder_ == null) {
          involvedObject_ = null;
          onChanged();
        } else {
          involvedObjectBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getInvolvedObjectBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getInvolvedObjectFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getInvolvedObjectOrBuilder() {
        if (involvedObjectBuilder_ != null) {
          return involvedObjectBuilder_.getMessageOrBuilder();
        } else {
          return involvedObject_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : involvedObject_;
        }
      }
      /**
       *
       *
       * <pre>
       * The object that this event is about.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference involvedObject = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getInvolvedObjectFieldBuilder() {
        if (involvedObjectBuilder_ == null) {
          involvedObjectBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getInvolvedObject(), getParentForChildren(), isClean());
          involvedObject_ = null;
        }
        return involvedObjectBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This should be a short, machine understandable string that gives the reason
       * for the transition into the object's current status.
       * TODO: provide exact specification for format.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human-readable description of the status of this operation.
       * TODO: decide on maximum length.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.EventSource source_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EventSource,
              io.kubernetes.client.proto.V1.EventSource.Builder,
              io.kubernetes.client.proto.V1.EventSourceOrBuilder>
          sourceBuilder_;
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public boolean hasSource() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public io.kubernetes.client.proto.V1.EventSource getSource() {
        if (sourceBuilder_ == null) {
          return source_ == null
              ? io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()
              : source_;
        } else {
          return sourceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public Builder setSource(io.kubernetes.client.proto.V1.EventSource value) {
        if (sourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          source_ = value;
          onChanged();
        } else {
          sourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public Builder setSource(io.kubernetes.client.proto.V1.EventSource.Builder builderForValue) {
        if (sourceBuilder_ == null) {
          source_ = builderForValue.build();
          onChanged();
        } else {
          sourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public Builder mergeSource(io.kubernetes.client.proto.V1.EventSource value) {
        if (sourceBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && source_ != null
              && source_ != io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()) {
            source_ =
                io.kubernetes.client.proto.V1.EventSource.newBuilder(source_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            source_ = value;
          }
          onChanged();
        } else {
          sourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public Builder clearSource() {
        if (sourceBuilder_ == null) {
          source_ = null;
          onChanged();
        } else {
          sourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public io.kubernetes.client.proto.V1.EventSource.Builder getSourceBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSourceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      public io.kubernetes.client.proto.V1.EventSourceOrBuilder getSourceOrBuilder() {
        if (sourceBuilder_ != null) {
          return sourceBuilder_.getMessageOrBuilder();
        } else {
          return source_ == null
              ? io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()
              : source_;
        }
      }
      /**
       *
       *
       * <pre>
       * The component reporting this event. Should be a short machine understandable string.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSource source = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EventSource,
              io.kubernetes.client.proto.V1.EventSource.Builder,
              io.kubernetes.client.proto.V1.EventSourceOrBuilder>
          getSourceFieldBuilder() {
        if (sourceBuilder_ == null) {
          sourceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EventSource,
                  io.kubernetes.client.proto.V1.EventSource.Builder,
                  io.kubernetes.client.proto.V1.EventSourceOrBuilder>(
                  getSource(), getParentForChildren(), isClean());
          source_ = null;
        }
        return sourceBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time firstTimestamp_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          firstTimestampBuilder_;
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public boolean hasFirstTimestamp() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getFirstTimestamp() {
        if (firstTimestampBuilder_ == null) {
          return firstTimestamp_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : firstTimestamp_;
        } else {
          return firstTimestampBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public Builder setFirstTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (firstTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          firstTimestamp_ = value;
          onChanged();
        } else {
          firstTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public Builder setFirstTimestamp(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (firstTimestampBuilder_ == null) {
          firstTimestamp_ = builderForValue.build();
          onChanged();
        } else {
          firstTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public Builder mergeFirstTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (firstTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && firstTimestamp_ != null
              && firstTimestamp_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            firstTimestamp_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(firstTimestamp_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            firstTimestamp_ = value;
          }
          onChanged();
        } else {
          firstTimestampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public Builder clearFirstTimestamp() {
        if (firstTimestampBuilder_ == null) {
          firstTimestamp_ = null;
          onChanged();
        } else {
          firstTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getFirstTimestampBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getFirstTimestampFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getFirstTimestampOrBuilder() {
        if (firstTimestampBuilder_ != null) {
          return firstTimestampBuilder_.getMessageOrBuilder();
        } else {
          return firstTimestamp_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : firstTimestamp_;
        }
      }
      /**
       *
       *
       * <pre>
       * The time at which the event was first recorded. (Time of server receipt is in TypeMeta.)
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time firstTimestamp = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getFirstTimestampFieldBuilder() {
        if (firstTimestampBuilder_ == null) {
          firstTimestampBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getFirstTimestamp(), getParentForChildren(), isClean());
          firstTimestamp_ = null;
        }
        return firstTimestampBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time lastTimestamp_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTimestampBuilder_;
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public boolean hasLastTimestamp() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTimestamp() {
        if (lastTimestampBuilder_ == null) {
          return lastTimestamp_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTimestamp_;
        } else {
          return lastTimestampBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public Builder setLastTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTimestampBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTimestamp_ = value;
          onChanged();
        } else {
          lastTimestampBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public Builder setLastTimestamp(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTimestampBuilder_ == null) {
          lastTimestamp_ = builderForValue.build();
          onChanged();
        } else {
          lastTimestampBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public Builder mergeLastTimestamp(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTimestampBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && lastTimestamp_ != null
              && lastTimestamp_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTimestamp_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTimestamp_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTimestamp_ = value;
          }
          onChanged();
        } else {
          lastTimestampBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public Builder clearLastTimestamp() {
        if (lastTimestampBuilder_ == null) {
          lastTimestamp_ = null;
          onChanged();
        } else {
          lastTimestampBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTimestampBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getLastTimestampFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTimestampOrBuilder() {
        if (lastTimestampBuilder_ != null) {
          return lastTimestampBuilder_.getMessageOrBuilder();
        } else {
          return lastTimestamp_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTimestamp_;
        }
      }
      /**
       *
       *
       * <pre>
       * The time at which the most recent occurrence of this event was recorded.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTimestamp = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTimestampFieldBuilder() {
        if (lastTimestampBuilder_ == null) {
          lastTimestampBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTimestamp(), getParentForChildren(), isClean());
          lastTimestamp_ = null;
        }
        return lastTimestampBuilder_;
      }

      private int count_;
      /**
       *
       *
       * <pre>
       * The number of times this event has occurred.
       * +optional
       * </pre>
       *
       * <code>optional int32 count = 8;</code>
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * The number of times this event has occurred.
       * +optional
       * </pre>
       *
       * <code>optional int32 count = 8;</code>
       */
      public int getCount() {
        return count_;
      }
      /**
       *
       *
       * <pre>
       * The number of times this event has occurred.
       * +optional
       * </pre>
       *
       * <code>optional int32 count = 8;</code>
       */
      public Builder setCount(int value) {
        bitField0_ |= 0x00000080;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The number of times this event has occurred.
       * +optional
       * </pre>
       *
       * <code>optional int32 count = 8;</code>
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000080);
        count_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of this event (Normal, Warning), new types could be added in the future
       * +optional
       * </pre>
       *
       * <code>optional string type = 9;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        type_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.MicroTime eventTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.MicroTime,
              io.kubernetes.client.proto.Meta.MicroTime.Builder,
              io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>
          eventTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public boolean hasEventTime() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public io.kubernetes.client.proto.Meta.MicroTime getEventTime() {
        if (eventTimeBuilder_ == null) {
          return eventTime_ == null
              ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
              : eventTime_;
        } else {
          return eventTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public Builder setEventTime(io.kubernetes.client.proto.Meta.MicroTime value) {
        if (eventTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          eventTime_ = value;
          onChanged();
        } else {
          eventTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public Builder setEventTime(
          io.kubernetes.client.proto.Meta.MicroTime.Builder builderForValue) {
        if (eventTimeBuilder_ == null) {
          eventTime_ = builderForValue.build();
          onChanged();
        } else {
          eventTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public Builder mergeEventTime(io.kubernetes.client.proto.Meta.MicroTime value) {
        if (eventTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && eventTime_ != null
              && eventTime_ != io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()) {
            eventTime_ =
                io.kubernetes.client.proto.Meta.MicroTime.newBuilder(eventTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            eventTime_ = value;
          }
          onChanged();
        } else {
          eventTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public Builder clearEventTime() {
        if (eventTimeBuilder_ == null) {
          eventTime_ = null;
          onChanged();
        } else {
          eventTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public io.kubernetes.client.proto.Meta.MicroTime.Builder getEventTimeBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getEventTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      public io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getEventTimeOrBuilder() {
        if (eventTimeBuilder_ != null) {
          return eventTimeBuilder_.getMessageOrBuilder();
        } else {
          return eventTime_ == null
              ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
              : eventTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time when this Event was first observed.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime eventTime = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.MicroTime,
              io.kubernetes.client.proto.Meta.MicroTime.Builder,
              io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>
          getEventTimeFieldBuilder() {
        if (eventTimeBuilder_ == null) {
          eventTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.MicroTime,
                  io.kubernetes.client.proto.Meta.MicroTime.Builder,
                  io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>(
                  getEventTime(), getParentForChildren(), isClean());
          eventTime_ = null;
        }
        return eventTimeBuilder_;
      }

      private io.kubernetes.client.proto.V1.EventSeries series_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EventSeries,
              io.kubernetes.client.proto.V1.EventSeries.Builder,
              io.kubernetes.client.proto.V1.EventSeriesOrBuilder>
          seriesBuilder_;
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public boolean hasSeries() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public io.kubernetes.client.proto.V1.EventSeries getSeries() {
        if (seriesBuilder_ == null) {
          return series_ == null
              ? io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()
              : series_;
        } else {
          return seriesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public Builder setSeries(io.kubernetes.client.proto.V1.EventSeries value) {
        if (seriesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          series_ = value;
          onChanged();
        } else {
          seriesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public Builder setSeries(io.kubernetes.client.proto.V1.EventSeries.Builder builderForValue) {
        if (seriesBuilder_ == null) {
          series_ = builderForValue.build();
          onChanged();
        } else {
          seriesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public Builder mergeSeries(io.kubernetes.client.proto.V1.EventSeries value) {
        if (seriesBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)
              && series_ != null
              && series_ != io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()) {
            series_ =
                io.kubernetes.client.proto.V1.EventSeries.newBuilder(series_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            series_ = value;
          }
          onChanged();
        } else {
          seriesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public Builder clearSeries() {
        if (seriesBuilder_ == null) {
          series_ = null;
          onChanged();
        } else {
          seriesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public io.kubernetes.client.proto.V1.EventSeries.Builder getSeriesBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getSeriesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      public io.kubernetes.client.proto.V1.EventSeriesOrBuilder getSeriesOrBuilder() {
        if (seriesBuilder_ != null) {
          return seriesBuilder_.getMessageOrBuilder();
        } else {
          return series_ == null
              ? io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()
              : series_;
        }
      }
      /**
       *
       *
       * <pre>
       * Data about the Event series this event represents or nil if it's a singleton Event.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EventSeries series = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EventSeries,
              io.kubernetes.client.proto.V1.EventSeries.Builder,
              io.kubernetes.client.proto.V1.EventSeriesOrBuilder>
          getSeriesFieldBuilder() {
        if (seriesBuilder_ == null) {
          seriesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EventSeries,
                  io.kubernetes.client.proto.V1.EventSeries.Builder,
                  io.kubernetes.client.proto.V1.EventSeriesOrBuilder>(
                  getSeries(), getParentForChildren(), isClean());
          series_ = null;
        }
        return seriesBuilder_;
      }

      private java.lang.Object action_ = "";
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public boolean hasAction() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public java.lang.String getAction() {
        java.lang.Object ref = action_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            action_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public com.google.protobuf.ByteString getActionBytes() {
        java.lang.Object ref = action_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          action_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public Builder setAction(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        action_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public Builder clearAction() {
        bitField0_ = (bitField0_ & ~0x00000800);
        action_ = getDefaultInstance().getAction();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What action was taken/failed regarding to the Regarding object.
       * +optional
       * </pre>
       *
       * <code>optional string action = 12;</code>
       */
      public Builder setActionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        action_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ObjectReference related_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          relatedBuilder_;
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public boolean hasRelated() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getRelated() {
        if (relatedBuilder_ == null) {
          return related_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : related_;
        } else {
          return relatedBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public Builder setRelated(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (relatedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          related_ = value;
          onChanged();
        } else {
          relatedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public Builder setRelated(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (relatedBuilder_ == null) {
          related_ = builderForValue.build();
          onChanged();
        } else {
          relatedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public Builder mergeRelated(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (relatedBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && related_ != null
              && related_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            related_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(related_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            related_ = value;
          }
          onChanged();
        } else {
          relatedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public Builder clearRelated() {
        if (relatedBuilder_ == null) {
          related_ = null;
          onChanged();
        } else {
          relatedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getRelatedBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getRelatedFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getRelatedOrBuilder() {
        if (relatedBuilder_ != null) {
          return relatedBuilder_.getMessageOrBuilder();
        } else {
          return related_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : related_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional secondary object for more complex actions.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference related = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getRelatedFieldBuilder() {
        if (relatedBuilder_ == null) {
          relatedBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getRelated(), getParentForChildren(), isClean());
          related_ = null;
        }
        return relatedBuilder_;
      }

      private java.lang.Object reportingComponent_ = "";
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public boolean hasReportingComponent() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public java.lang.String getReportingComponent() {
        java.lang.Object ref = reportingComponent_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reportingComponent_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public com.google.protobuf.ByteString getReportingComponentBytes() {
        java.lang.Object ref = reportingComponent_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reportingComponent_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public Builder setReportingComponent(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00002000;
        reportingComponent_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public Builder clearReportingComponent() {
        bitField0_ = (bitField0_ & ~0x00002000);
        reportingComponent_ = getDefaultInstance().getReportingComponent();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the controller that emitted this Event, e.g. `kubernetes.io/kubelet`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingComponent = 14;</code>
       */
      public Builder setReportingComponentBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00002000;
        reportingComponent_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object reportingInstance_ = "";
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public boolean hasReportingInstance() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public java.lang.String getReportingInstance() {
        java.lang.Object ref = reportingInstance_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reportingInstance_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public com.google.protobuf.ByteString getReportingInstanceBytes() {
        java.lang.Object ref = reportingInstance_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reportingInstance_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public Builder setReportingInstance(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        reportingInstance_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public Builder clearReportingInstance() {
        bitField0_ = (bitField0_ & ~0x00004000);
        reportingInstance_ = getDefaultInstance().getReportingInstance();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID of the controller instance, e.g. `kubelet-xyzf`.
       * +optional
       * </pre>
       *
       * <code>optional string reportingInstance = 15;</code>
       */
      public Builder setReportingInstanceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00004000;
        reportingInstance_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Event)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Event)
    private static final io.kubernetes.client.proto.V1.Event DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Event();
    }

    public static io.kubernetes.client.proto.V1.Event getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Event> PARSER =
        new com.google.protobuf.AbstractParser<Event>() {
          @java.lang.Override
          public Event parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Event(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Event> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Event> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Event getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EventListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EventList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Event> getItemsList();
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Event getItems(int index);
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.EventOrBuilder> getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    io.kubernetes.client.proto.V1.EventOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * EventList is a list of events.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EventList}
   */
  public static final class EventList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EventList)
      EventListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EventList.newBuilder() to construct.
    private EventList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EventList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EventList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Event>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Event.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_EventList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EventList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EventList.class,
              io.kubernetes.client.proto.V1.EventList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Event> items_;
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Event> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.EventOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Event getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of events
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EventOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EventList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EventList other = (io.kubernetes.client.proto.V1.EventList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EventList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EventList is a list of events.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EventList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EventList)
        io.kubernetes.client.proto.V1.EventListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EventList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EventList.class,
                io.kubernetes.client.proto.V1.EventList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EventList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EventList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventList build() {
        io.kubernetes.client.proto.V1.EventList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventList buildPartial() {
        io.kubernetes.client.proto.V1.EventList result =
            new io.kubernetes.client.proto.V1.EventList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EventList) {
          return mergeFrom((io.kubernetes.client.proto.V1.EventList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EventList other) {
        if (other == io.kubernetes.client.proto.V1.EventList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EventList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EventList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Event> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Event>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Event,
              io.kubernetes.client.proto.V1.Event.Builder,
              io.kubernetes.client.proto.V1.EventOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Event> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Event getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Event value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Event.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Event value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Event value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Event.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Event.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Event> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Event.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EventOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.EventOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Event.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Event.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Event.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Event.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of events
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Event items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Event.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Event,
              io.kubernetes.client.proto.V1.Event.Builder,
              io.kubernetes.client.proto.V1.EventOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Event,
                  io.kubernetes.client.proto.V1.Event.Builder,
                  io.kubernetes.client.proto.V1.EventOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EventList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EventList)
    private static final io.kubernetes.client.proto.V1.EventList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EventList();
    }

    public static io.kubernetes.client.proto.V1.EventList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EventList> PARSER =
        new com.google.protobuf.AbstractParser<EventList>() {
          @java.lang.Override
          public EventList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EventList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EventList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EventList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EventList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EventSeriesOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EventSeries)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Number of occurrences in this series up to the last heartbeat time
     * </pre>
     *
     * <code>optional int32 count = 1;</code>
     */
    boolean hasCount();
    /**
     *
     *
     * <pre>
     * Number of occurrences in this series up to the last heartbeat time
     * </pre>
     *
     * <code>optional int32 count = 1;</code>
     */
    int getCount();

    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    boolean hasLastObservedTime();
    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    io.kubernetes.client.proto.Meta.MicroTime getLastObservedTime();
    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getLastObservedTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    boolean hasState();
    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    java.lang.String getState();
    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    com.google.protobuf.ByteString getStateBytes();
  }
  /**
   *
   *
   * <pre>
   * EventSeries contain information on series of events, i.e. thing that was/is happening
   * continuously for some time.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EventSeries}
   */
  public static final class EventSeries extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EventSeries)
      EventSeriesOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EventSeries.newBuilder() to construct.
    private EventSeries(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EventSeries() {
      count_ = 0;
      state_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EventSeries(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                count_ = input.readInt32();
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.Meta.MicroTime.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = lastObservedTime_.toBuilder();
                }
                lastObservedTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.MicroTime.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastObservedTime_);
                  lastObservedTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                state_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EventSeries_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EventSeries_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EventSeries.class,
              io.kubernetes.client.proto.V1.EventSeries.Builder.class);
    }

    private int bitField0_;
    public static final int COUNT_FIELD_NUMBER = 1;
    private int count_;
    /**
     *
     *
     * <pre>
     * Number of occurrences in this series up to the last heartbeat time
     * </pre>
     *
     * <code>optional int32 count = 1;</code>
     */
    public boolean hasCount() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Number of occurrences in this series up to the last heartbeat time
     * </pre>
     *
     * <code>optional int32 count = 1;</code>
     */
    public int getCount() {
      return count_;
    }

    public static final int LASTOBSERVEDTIME_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.Meta.MicroTime lastObservedTime_;
    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    public boolean hasLastObservedTime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.MicroTime getLastObservedTime() {
      return lastObservedTime_ == null
          ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
          : lastObservedTime_;
    }
    /**
     *
     *
     * <pre>
     * Time of the last occurrence observed
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getLastObservedTimeOrBuilder() {
      return lastObservedTime_ == null
          ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
          : lastObservedTime_;
    }

    public static final int STATE_FIELD_NUMBER = 3;
    private volatile java.lang.Object state_;
    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    public boolean hasState() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    public java.lang.String getState() {
      java.lang.Object ref = state_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          state_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * State of this Series: Ongoing or Finished
     * </pre>
     *
     * <code>optional string state = 3;</code>
     */
    public com.google.protobuf.ByteString getStateBytes() {
      java.lang.Object ref = state_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        state_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, count_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getLastObservedTime());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, state_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, count_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getLastObservedTime());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, state_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EventSeries)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EventSeries other =
          (io.kubernetes.client.proto.V1.EventSeries) obj;

      boolean result = true;
      result = result && (hasCount() == other.hasCount());
      if (hasCount()) {
        result = result && (getCount() == other.getCount());
      }
      result = result && (hasLastObservedTime() == other.hasLastObservedTime());
      if (hasLastObservedTime()) {
        result = result && getLastObservedTime().equals(other.getLastObservedTime());
      }
      result = result && (hasState() == other.hasState());
      if (hasState()) {
        result = result && getState().equals(other.getState());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCount()) {
        hash = (37 * hash) + COUNT_FIELD_NUMBER;
        hash = (53 * hash) + getCount();
      }
      if (hasLastObservedTime()) {
        hash = (37 * hash) + LASTOBSERVEDTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastObservedTime().hashCode();
      }
      if (hasState()) {
        hash = (37 * hash) + STATE_FIELD_NUMBER;
        hash = (53 * hash) + getState().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSeries parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EventSeries prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EventSeries contain information on series of events, i.e. thing that was/is happening
     * continuously for some time.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EventSeries}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EventSeries)
        io.kubernetes.client.proto.V1.EventSeriesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventSeries_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EventSeries_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EventSeries.class,
                io.kubernetes.client.proto.V1.EventSeries.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EventSeries.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLastObservedTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        count_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (lastObservedTimeBuilder_ == null) {
          lastObservedTime_ = null;
        } else {
          lastObservedTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        state_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventSeries_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSeries getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSeries build() {
        io.kubernetes.client.proto.V1.EventSeries result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSeries buildPartial() {
        io.kubernetes.client.proto.V1.EventSeries result =
            new io.kubernetes.client.proto.V1.EventSeries(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.count_ = count_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (lastObservedTimeBuilder_ == null) {
          result.lastObservedTime_ = lastObservedTime_;
        } else {
          result.lastObservedTime_ = lastObservedTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.state_ = state_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EventSeries) {
          return mergeFrom((io.kubernetes.client.proto.V1.EventSeries) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EventSeries other) {
        if (other == io.kubernetes.client.proto.V1.EventSeries.getDefaultInstance()) return this;
        if (other.hasCount()) {
          setCount(other.getCount());
        }
        if (other.hasLastObservedTime()) {
          mergeLastObservedTime(other.getLastObservedTime());
        }
        if (other.hasState()) {
          bitField0_ |= 0x00000004;
          state_ = other.state_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EventSeries parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EventSeries) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int count_;
      /**
       *
       *
       * <pre>
       * Number of occurrences in this series up to the last heartbeat time
       * </pre>
       *
       * <code>optional int32 count = 1;</code>
       */
      public boolean hasCount() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Number of occurrences in this series up to the last heartbeat time
       * </pre>
       *
       * <code>optional int32 count = 1;</code>
       */
      public int getCount() {
        return count_;
      }
      /**
       *
       *
       * <pre>
       * Number of occurrences in this series up to the last heartbeat time
       * </pre>
       *
       * <code>optional int32 count = 1;</code>
       */
      public Builder setCount(int value) {
        bitField0_ |= 0x00000001;
        count_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number of occurrences in this series up to the last heartbeat time
       * </pre>
       *
       * <code>optional int32 count = 1;</code>
       */
      public Builder clearCount() {
        bitField0_ = (bitField0_ & ~0x00000001);
        count_ = 0;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.MicroTime lastObservedTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.MicroTime,
              io.kubernetes.client.proto.Meta.MicroTime.Builder,
              io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>
          lastObservedTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public boolean hasLastObservedTime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.MicroTime getLastObservedTime() {
        if (lastObservedTimeBuilder_ == null) {
          return lastObservedTime_ == null
              ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
              : lastObservedTime_;
        } else {
          return lastObservedTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public Builder setLastObservedTime(io.kubernetes.client.proto.Meta.MicroTime value) {
        if (lastObservedTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastObservedTime_ = value;
          onChanged();
        } else {
          lastObservedTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public Builder setLastObservedTime(
          io.kubernetes.client.proto.Meta.MicroTime.Builder builderForValue) {
        if (lastObservedTimeBuilder_ == null) {
          lastObservedTime_ = builderForValue.build();
          onChanged();
        } else {
          lastObservedTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public Builder mergeLastObservedTime(io.kubernetes.client.proto.Meta.MicroTime value) {
        if (lastObservedTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && lastObservedTime_ != null
              && lastObservedTime_
                  != io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()) {
            lastObservedTime_ =
                io.kubernetes.client.proto.Meta.MicroTime.newBuilder(lastObservedTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastObservedTime_ = value;
          }
          onChanged();
        } else {
          lastObservedTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public Builder clearLastObservedTime() {
        if (lastObservedTimeBuilder_ == null) {
          lastObservedTime_ = null;
          onChanged();
        } else {
          lastObservedTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.MicroTime.Builder getLastObservedTimeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getLastObservedTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.MicroTimeOrBuilder getLastObservedTimeOrBuilder() {
        if (lastObservedTimeBuilder_ != null) {
          return lastObservedTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastObservedTime_ == null
              ? io.kubernetes.client.proto.Meta.MicroTime.getDefaultInstance()
              : lastObservedTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time of the last occurrence observed
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime lastObservedTime = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.MicroTime,
              io.kubernetes.client.proto.Meta.MicroTime.Builder,
              io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>
          getLastObservedTimeFieldBuilder() {
        if (lastObservedTimeBuilder_ == null) {
          lastObservedTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.MicroTime,
                  io.kubernetes.client.proto.Meta.MicroTime.Builder,
                  io.kubernetes.client.proto.Meta.MicroTimeOrBuilder>(
                  getLastObservedTime(), getParentForChildren(), isClean());
          lastObservedTime_ = null;
        }
        return lastObservedTimeBuilder_;
      }

      private java.lang.Object state_ = "";
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public boolean hasState() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public java.lang.String getState() {
        java.lang.Object ref = state_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            state_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public com.google.protobuf.ByteString getStateBytes() {
        java.lang.Object ref = state_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          state_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public Builder setState(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        state_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public Builder clearState() {
        bitField0_ = (bitField0_ & ~0x00000004);
        state_ = getDefaultInstance().getState();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * State of this Series: Ongoing or Finished
       * </pre>
       *
       * <code>optional string state = 3;</code>
       */
      public Builder setStateBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        state_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EventSeries)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EventSeries)
    private static final io.kubernetes.client.proto.V1.EventSeries DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EventSeries();
    }

    public static io.kubernetes.client.proto.V1.EventSeries getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EventSeries> PARSER =
        new com.google.protobuf.AbstractParser<EventSeries>() {
          @java.lang.Override
          public EventSeries parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EventSeries(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EventSeries> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EventSeries> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EventSeries getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface EventSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.EventSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    boolean hasComponent();
    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    java.lang.String getComponent();
    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    com.google.protobuf.ByteString getComponentBytes();

    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    boolean hasHost();
    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    java.lang.String getHost();
    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    com.google.protobuf.ByteString getHostBytes();
  }
  /**
   *
   *
   * <pre>
   * EventSource contains information for an event.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.EventSource}
   */
  public static final class EventSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.EventSource)
      EventSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use EventSource.newBuilder() to construct.
    private EventSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private EventSource() {
      component_ = "";
      host_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private EventSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                component_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                host_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_EventSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_EventSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.EventSource.class,
              io.kubernetes.client.proto.V1.EventSource.Builder.class);
    }

    private int bitField0_;
    public static final int COMPONENT_FIELD_NUMBER = 1;
    private volatile java.lang.Object component_;
    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    public boolean hasComponent() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    public java.lang.String getComponent() {
      java.lang.Object ref = component_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          component_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Component from which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string component = 1;</code>
     */
    public com.google.protobuf.ByteString getComponentBytes() {
      java.lang.Object ref = component_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        component_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOST_FIELD_NUMBER = 2;
    private volatile java.lang.Object host_;
    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public boolean hasHost() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          host_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Node name on which the event is generated.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public com.google.protobuf.ByteString getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, component_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, host_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, component_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, host_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.EventSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.EventSource other =
          (io.kubernetes.client.proto.V1.EventSource) obj;

      boolean result = true;
      result = result && (hasComponent() == other.hasComponent());
      if (hasComponent()) {
        result = result && getComponent().equals(other.getComponent());
      }
      result = result && (hasHost() == other.hasHost());
      if (hasHost()) {
        result = result && getHost().equals(other.getHost());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasComponent()) {
        hash = (37 * hash) + COMPONENT_FIELD_NUMBER;
        hash = (53 * hash) + getComponent().hashCode();
      }
      if (hasHost()) {
        hash = (37 * hash) + HOST_FIELD_NUMBER;
        hash = (53 * hash) + getHost().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.EventSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.EventSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * EventSource contains information for an event.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.EventSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.EventSource)
        io.kubernetes.client.proto.V1.EventSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_EventSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.EventSource.class,
                io.kubernetes.client.proto.V1.EventSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.EventSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        component_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        host_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_EventSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.EventSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSource build() {
        io.kubernetes.client.proto.V1.EventSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.EventSource buildPartial() {
        io.kubernetes.client.proto.V1.EventSource result =
            new io.kubernetes.client.proto.V1.EventSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.component_ = component_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.host_ = host_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.EventSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.EventSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.EventSource other) {
        if (other == io.kubernetes.client.proto.V1.EventSource.getDefaultInstance()) return this;
        if (other.hasComponent()) {
          bitField0_ |= 0x00000001;
          component_ = other.component_;
          onChanged();
        }
        if (other.hasHost()) {
          bitField0_ |= 0x00000002;
          host_ = other.host_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.EventSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.EventSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object component_ = "";
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public boolean hasComponent() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public java.lang.String getComponent() {
        java.lang.Object ref = component_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            component_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public com.google.protobuf.ByteString getComponentBytes() {
        java.lang.Object ref = component_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          component_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public Builder setComponent(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        component_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public Builder clearComponent() {
        bitField0_ = (bitField0_ & ~0x00000001);
        component_ = getDefaultInstance().getComponent();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Component from which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string component = 1;</code>
       */
      public Builder setComponentBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        component_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object host_ = "";
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public boolean hasHost() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            host_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public com.google.protobuf.ByteString getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder setHost(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        host_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder clearHost() {
        bitField0_ = (bitField0_ & ~0x00000002);
        host_ = getDefaultInstance().getHost();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Node name on which the event is generated.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder setHostBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        host_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.EventSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.EventSource)
    private static final io.kubernetes.client.proto.V1.EventSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.EventSource();
    }

    public static io.kubernetes.client.proto.V1.EventSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<EventSource> PARSER =
        new com.google.protobuf.AbstractParser<EventSource>() {
          @java.lang.Override
          public EventSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new EventSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<EventSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<EventSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.EventSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ExecActionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ExecAction)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    java.util.List<java.lang.String> getCommandList();
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    int getCommandCount();
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    java.lang.String getCommand(int index);
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    com.google.protobuf.ByteString getCommandBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * ExecAction describes a "run in container" action.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ExecAction}
   */
  public static final class ExecAction extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ExecAction)
      ExecActionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ExecAction.newBuilder() to construct.
    private ExecAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ExecAction() {
      command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ExecAction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  command_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                command_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          command_ = command_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_ExecAction_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ExecAction_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ExecAction.class,
              io.kubernetes.client.proto.V1.ExecAction.Builder.class);
    }

    public static final int COMMAND_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList command_;
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getCommandList() {
      return command_;
    }
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    public int getCommandCount() {
      return command_.size();
    }
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    public java.lang.String getCommand(int index) {
      return command_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Command is the command line to execute inside the container, the working directory for the
     * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
     * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
     * a shell, you need to explicitly call out to that shell.
     * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
     * +optional
     * </pre>
     *
     * <code>repeated string command = 1;</code>
     */
    public com.google.protobuf.ByteString getCommandBytes(int index) {
      return command_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < command_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, command_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < command_.size(); i++) {
          dataSize += computeStringSizeNoTag(command_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCommandList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ExecAction)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ExecAction other =
          (io.kubernetes.client.proto.V1.ExecAction) obj;

      boolean result = true;
      result = result && getCommandList().equals(other.getCommandList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getCommandCount() > 0) {
        hash = (37 * hash) + COMMAND_FIELD_NUMBER;
        hash = (53 * hash) + getCommandList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ExecAction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ExecAction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ExecAction describes a "run in container" action.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ExecAction}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ExecAction)
        io.kubernetes.client.proto.V1.ExecActionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ExecAction_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ExecAction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ExecAction.class,
                io.kubernetes.client.proto.V1.ExecAction.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ExecAction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ExecAction_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ExecAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ExecAction build() {
        io.kubernetes.client.proto.V1.ExecAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ExecAction buildPartial() {
        io.kubernetes.client.proto.V1.ExecAction result =
            new io.kubernetes.client.proto.V1.ExecAction(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          command_ = command_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.command_ = command_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ExecAction) {
          return mergeFrom((io.kubernetes.client.proto.V1.ExecAction) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ExecAction other) {
        if (other == io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance()) return this;
        if (!other.command_.isEmpty()) {
          if (command_.isEmpty()) {
            command_ = other.command_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureCommandIsMutable();
            command_.addAll(other.command_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ExecAction parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ExecAction) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList command_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureCommandIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          command_ = new com.google.protobuf.LazyStringArrayList(command_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getCommandList() {
        return command_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public int getCommandCount() {
        return command_.size();
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public java.lang.String getCommand(int index) {
        return command_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public com.google.protobuf.ByteString getCommandBytes(int index) {
        return command_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public Builder setCommand(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public Builder addCommand(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public Builder addAllCommand(java.lang.Iterable<java.lang.String> values) {
        ensureCommandIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, command_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public Builder clearCommand() {
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the command line to execute inside the container, the working directory for the
       * command  is root ('/') in the container's filesystem. The command is simply exec'd, it is
       * not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use
       * a shell, you need to explicitly call out to that shell.
       * Exit status of 0 is treated as live/healthy and non-zero is unhealthy.
       * +optional
       * </pre>
       *
       * <code>repeated string command = 1;</code>
       */
      public Builder addCommandBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ExecAction)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ExecAction)
    private static final io.kubernetes.client.proto.V1.ExecAction DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ExecAction();
    }

    public static io.kubernetes.client.proto.V1.ExecAction getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ExecAction> PARSER =
        new com.google.protobuf.AbstractParser<ExecAction>() {
          @java.lang.Override
          public ExecAction parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ExecAction(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ExecAction> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ExecAction> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ExecAction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface FCVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.FCVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    java.util.List<java.lang.String> getTargetWWNsList();
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    int getTargetWWNsCount();
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    java.lang.String getTargetWWNs(int index);
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    com.google.protobuf.ByteString getTargetWWNsBytes(int index);

    /**
     *
     *
     * <pre>
     * Optional: FC target lun number
     * +optional
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    boolean hasLun();
    /**
     *
     *
     * <pre>
     * Optional: FC target lun number
     * +optional
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    int getLun();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    java.util.List<java.lang.String> getWwidsList();
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    int getWwidsCount();
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    java.lang.String getWwids(int index);
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    com.google.protobuf.ByteString getWwidsBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * Represents a Fibre Channel volume.
   * Fibre Channel volumes can only be mounted as read/write once.
   * Fibre Channel volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.FCVolumeSource}
   */
  public static final class FCVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.FCVolumeSource)
      FCVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use FCVolumeSource.newBuilder() to construct.
    private FCVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private FCVolumeSource() {
      targetWWNs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      lun_ = 0;
      fsType_ = "";
      readOnly_ = false;
      wwids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private FCVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  targetWWNs_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                targetWWNs_.add(bs);
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000001;
                lun_ = input.readInt32();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  wwids_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                wwids_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          targetWWNs_ = targetWWNs_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          wwids_ = wwids_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_FCVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.FCVolumeSource.class,
              io.kubernetes.client.proto.V1.FCVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int TARGETWWNS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList targetWWNs_;
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getTargetWWNsList() {
      return targetWWNs_;
    }
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public int getTargetWWNsCount() {
      return targetWWNs_.size();
    }
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public java.lang.String getTargetWWNs(int index) {
      return targetWWNs_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Optional: FC target worldwide names (WWNs)
     * +optional
     * </pre>
     *
     * <code>repeated string targetWWNs = 1;</code>
     */
    public com.google.protobuf.ByteString getTargetWWNsBytes(int index) {
      return targetWWNs_.getByteString(index);
    }

    public static final int LUN_FIELD_NUMBER = 2;
    private int lun_;
    /**
     *
     *
     * <pre>
     * Optional: FC target lun number
     * +optional
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    public boolean hasLun() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Optional: FC target lun number
     * +optional
     * </pre>
     *
     * <code>optional int32 lun = 2;</code>
     */
    public int getLun() {
      return lun_;
    }

    public static final int FSTYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int WWIDS_FIELD_NUMBER = 5;
    private com.google.protobuf.LazyStringList wwids_;
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    public com.google.protobuf.ProtocolStringList getWwidsList() {
      return wwids_;
    }
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    public int getWwidsCount() {
      return wwids_.size();
    }
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    public java.lang.String getWwids(int index) {
      return wwids_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Optional: FC volume world wide identifiers (wwids)
     * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
     * +optional
     * </pre>
     *
     * <code>repeated string wwids = 5;</code>
     */
    public com.google.protobuf.ByteString getWwidsBytes(int index) {
      return wwids_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < targetWWNs_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, targetWWNs_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(2, lun_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(4, readOnly_);
      }
      for (int i = 0; i < wwids_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, wwids_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < targetWWNs_.size(); i++) {
          dataSize += computeStringSizeNoTag(targetWWNs_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getTargetWWNsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, lun_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < wwids_.size(); i++) {
          dataSize += computeStringSizeNoTag(wwids_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getWwidsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.FCVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.FCVolumeSource other =
          (io.kubernetes.client.proto.V1.FCVolumeSource) obj;

      boolean result = true;
      result = result && getTargetWWNsList().equals(other.getTargetWWNsList());
      result = result && (hasLun() == other.hasLun());
      if (hasLun()) {
        result = result && (getLun() == other.getLun());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && getWwidsList().equals(other.getWwidsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getTargetWWNsCount() > 0) {
        hash = (37 * hash) + TARGETWWNS_FIELD_NUMBER;
        hash = (53 * hash) + getTargetWWNsList().hashCode();
      }
      if (hasLun()) {
        hash = (37 * hash) + LUN_FIELD_NUMBER;
        hash = (53 * hash) + getLun();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (getWwidsCount() > 0) {
        hash = (37 * hash) + WWIDS_FIELD_NUMBER;
        hash = (53 * hash) + getWwidsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.FCVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Fibre Channel volume.
     * Fibre Channel volumes can only be mounted as read/write once.
     * Fibre Channel volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.FCVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.FCVolumeSource)
        io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_FCVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.FCVolumeSource.class,
                io.kubernetes.client.proto.V1.FCVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.FCVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetWWNs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        lun_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        wwids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FCVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FCVolumeSource build() {
        io.kubernetes.client.proto.V1.FCVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FCVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.FCVolumeSource result =
            new io.kubernetes.client.proto.V1.FCVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          targetWWNs_ = targetWWNs_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.targetWWNs_ = targetWWNs_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.lun_ = lun_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          wwids_ = wwids_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.wwids_ = wwids_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.FCVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.FCVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.FCVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()) return this;
        if (!other.targetWWNs_.isEmpty()) {
          if (targetWWNs_.isEmpty()) {
            targetWWNs_ = other.targetWWNs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureTargetWWNsIsMutable();
            targetWWNs_.addAll(other.targetWWNs_);
          }
          onChanged();
        }
        if (other.hasLun()) {
          setLun(other.getLun());
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000004;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (!other.wwids_.isEmpty()) {
          if (wwids_.isEmpty()) {
            wwids_ = other.wwids_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureWwidsIsMutable();
            wwids_.addAll(other.wwids_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.FCVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.FCVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList targetWWNs_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureTargetWWNsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          targetWWNs_ = new com.google.protobuf.LazyStringArrayList(targetWWNs_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getTargetWWNsList() {
        return targetWWNs_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public int getTargetWWNsCount() {
        return targetWWNs_.size();
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public java.lang.String getTargetWWNs(int index) {
        return targetWWNs_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public com.google.protobuf.ByteString getTargetWWNsBytes(int index) {
        return targetWWNs_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder setTargetWWNs(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTargetWWNsIsMutable();
        targetWWNs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder addTargetWWNs(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTargetWWNsIsMutable();
        targetWWNs_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder addAllTargetWWNs(java.lang.Iterable<java.lang.String> values) {
        ensureTargetWWNsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, targetWWNs_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder clearTargetWWNs() {
        targetWWNs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target worldwide names (WWNs)
       * +optional
       * </pre>
       *
       * <code>repeated string targetWWNs = 1;</code>
       */
      public Builder addTargetWWNsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureTargetWWNsIsMutable();
        targetWWNs_.add(value);
        onChanged();
        return this;
      }

      private int lun_;
      /**
       *
       *
       * <pre>
       * Optional: FC target lun number
       * +optional
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public boolean hasLun() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target lun number
       * +optional
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public int getLun() {
        return lun_;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target lun number
       * +optional
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public Builder setLun(int value) {
        bitField0_ |= 0x00000002;
        lun_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC target lun number
       * +optional
       * </pre>
       *
       * <code>optional int32 lun = 2;</code>
       */
      public Builder clearLun() {
        bitField0_ = (bitField0_ & ~0x00000002);
        lun_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList wwids_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureWwidsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          wwids_ = new com.google.protobuf.LazyStringArrayList(wwids_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public com.google.protobuf.ProtocolStringList getWwidsList() {
        return wwids_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public int getWwidsCount() {
        return wwids_.size();
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public java.lang.String getWwids(int index) {
        return wwids_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public com.google.protobuf.ByteString getWwidsBytes(int index) {
        return wwids_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public Builder setWwids(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureWwidsIsMutable();
        wwids_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public Builder addWwids(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureWwidsIsMutable();
        wwids_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public Builder addAllWwids(java.lang.Iterable<java.lang.String> values) {
        ensureWwidsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, wwids_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public Builder clearWwids() {
        wwids_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: FC volume world wide identifiers (wwids)
       * Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.
       * +optional
       * </pre>
       *
       * <code>repeated string wwids = 5;</code>
       */
      public Builder addWwidsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureWwidsIsMutable();
        wwids_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.FCVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.FCVolumeSource)
    private static final io.kubernetes.client.proto.V1.FCVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.FCVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.FCVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<FCVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<FCVolumeSource>() {
          @java.lang.Override
          public FCVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new FCVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<FCVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FCVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.FCVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface FlexPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.FlexPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    boolean hasDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    java.lang.String getDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    com.google.protobuf.ByteString getDriverBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    int getOptionsCount();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    boolean containsOptions(java.lang.String key);
    /** Use {@link #getOptionsMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getOptions();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getOptionsMap();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.lang.String getOptionsOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.lang.String getOptionsOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * FlexPersistentVolumeSource represents a generic persistent volume resource that is
   * provisioned/attached using an exec based plugin.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.FlexPersistentVolumeSource}
   */
  public static final class FlexPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.FlexPersistentVolumeSource)
      FlexPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use FlexPersistentVolumeSource.newBuilder() to construct.
    private FlexPersistentVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private FlexPersistentVolumeSource() {
      driver_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private FlexPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                driver_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  options_ =
                      com.google.protobuf.MapField.newMapField(
                          OptionsDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000010;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> options__ =
                    input.readMessage(
                        OptionsDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                options_.getMutableMap().put(options__.getKey(), options__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 5:
          return internalGetOptions();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int DRIVER_FIELD_NUMBER = 1;
    private volatile java.lang.Object driver_;
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public boolean hasDriver() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public java.lang.String getDriver() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          driver_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public com.google.protobuf.ByteString getDriverBytes() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        driver_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int OPTIONS_FIELD_NUMBER = 5;

    private static final class OptionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> options_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetOptions() {
      if (options_ == null) {
        return com.google.protobuf.MapField.emptyMapField(OptionsDefaultEntryHolder.defaultEntry);
      }
      return options_;
    }

    public int getOptionsCount() {
      return internalGetOptions().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public boolean containsOptions(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetOptions().getMap().containsKey(key);
    }
    /** Use {@link #getOptionsMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getOptions() {
      return getOptionsMap();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
      return internalGetOptions().getMap();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.lang.String getOptionsOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.lang.String getOptionsOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetOptions(), OptionsDefaultEntryHolder.defaultEntry, 5);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> options__ =
            OptionsDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, options__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.FlexPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.FlexPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.FlexPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasDriver() == other.hasDriver());
      if (hasDriver()) {
        result = result && getDriver().equals(other.getDriver());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && internalGetOptions().equals(other.internalGetOptions());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDriver()) {
        hash = (37 * hash) + DRIVER_FIELD_NUMBER;
        hash = (53 * hash) + getDriver().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (!internalGetOptions().getMap().isEmpty()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.FlexPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * FlexPersistentVolumeSource represents a generic persistent volume resource that is
     * provisioned/attached using an exec based plugin.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.FlexPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.FlexPersistentVolumeSource)
        io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 5:
            return internalGetOptions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 5:
            return internalGetMutableOptions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        driver_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableOptions().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.FlexPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.FlexPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.FlexPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.driver_ = driver_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        result.options_ = internalGetOptions();
        result.options_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.FlexPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.FlexPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.FlexPersistentVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasDriver()) {
          bitField0_ |= 0x00000001;
          driver_ = other.driver_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        internalGetMutableOptions().mergeFrom(other.internalGetOptions());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.FlexPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.FlexPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object driver_ = "";
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public boolean hasDriver() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public java.lang.String getDriver() {
        java.lang.Object ref = driver_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            driver_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public com.google.protobuf.ByteString getDriverBytes() {
        java.lang.Object ref = driver_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          driver_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriver(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder clearDriver() {
        bitField0_ = (bitField0_ & ~0x00000001);
        driver_ = getDefaultInstance().getDriver();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriverBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> options_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetOptions() {
        if (options_ == null) {
          return com.google.protobuf.MapField.emptyMapField(OptionsDefaultEntryHolder.defaultEntry);
        }
        return options_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableOptions() {
        onChanged();
        ;
        if (options_ == null) {
          options_ =
              com.google.protobuf.MapField.newMapField(OptionsDefaultEntryHolder.defaultEntry);
        }
        if (!options_.isMutable()) {
          options_ = options_.copy();
        }
        return options_;
      }

      public int getOptionsCount() {
        return internalGetOptions().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public boolean containsOptions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetOptions().getMap().containsKey(key);
      }
      /** Use {@link #getOptionsMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getOptions() {
        return getOptionsMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
        return internalGetOptions().getMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.lang.String getOptionsOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.lang.String getOptionsOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearOptions() {
        internalGetMutableOptions().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder removeOptions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableOptions().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableOptions() {
        return internalGetMutableOptions().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder putOptions(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableOptions().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder putAllOptions(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableOptions().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.FlexPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.FlexPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.FlexPersistentVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.FlexPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<FlexPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<FlexPersistentVolumeSource>() {
          @java.lang.Override
          public FlexPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new FlexPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<FlexPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FlexPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface FlexVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.FlexVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    boolean hasDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    java.lang.String getDriver();
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    com.google.protobuf.ByteString getDriverBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    int getOptionsCount();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    boolean containsOptions(java.lang.String key);
    /** Use {@link #getOptionsMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getOptions();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getOptionsMap();
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.lang.String getOptionsOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    java.lang.String getOptionsOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * FlexVolume represents a generic volume resource that is
   * provisioned/attached using an exec based plugin.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.FlexVolumeSource}
   */
  public static final class FlexVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.FlexVolumeSource)
      FlexVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use FlexVolumeSource.newBuilder() to construct.
    private FlexVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private FlexVolumeSource() {
      driver_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private FlexVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                driver_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  options_ =
                      com.google.protobuf.MapField.newMapField(
                          OptionsDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000010;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> options__ =
                    input.readMessage(
                        OptionsDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                options_.getMutableMap().put(options__.getKey(), options__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 5:
          return internalGetOptions();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_FlexVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.FlexVolumeSource.class,
              io.kubernetes.client.proto.V1.FlexVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int DRIVER_FIELD_NUMBER = 1;
    private volatile java.lang.Object driver_;
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public boolean hasDriver() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public java.lang.String getDriver() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          driver_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Driver is the name of the driver to use for this volume.
     * </pre>
     *
     * <code>optional string driver = 1;</code>
     */
    public com.google.protobuf.ByteString getDriverBytes() {
      java.lang.Object ref = driver_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        driver_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * Optional: SecretRef is reference to the secret object containing
     * sensitive information to pass to the plugin scripts. This may be
     * empty if no secret object is specified. If the secret object
     * contains more than one secret, all secrets are passed to the plugin
     * scripts.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Optional: Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int OPTIONS_FIELD_NUMBER = 5;

    private static final class OptionsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> options_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetOptions() {
      if (options_ == null) {
        return com.google.protobuf.MapField.emptyMapField(OptionsDefaultEntryHolder.defaultEntry);
      }
      return options_;
    }

    public int getOptionsCount() {
      return internalGetOptions().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public boolean containsOptions(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetOptions().getMap().containsKey(key);
    }
    /** Use {@link #getOptionsMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getOptions() {
      return getOptionsMap();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
      return internalGetOptions().getMap();
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.lang.String getOptionsOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Optional: Extra command options if any.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; options = 5;</code>
     */
    public java.lang.String getOptionsOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetOptions(), OptionsDefaultEntryHolder.defaultEntry, 5);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, driver_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetOptions().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> options__ =
            OptionsDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, options__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.FlexVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.FlexVolumeSource other =
          (io.kubernetes.client.proto.V1.FlexVolumeSource) obj;

      boolean result = true;
      result = result && (hasDriver() == other.hasDriver());
      if (hasDriver()) {
        result = result && getDriver().equals(other.getDriver());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && internalGetOptions().equals(other.internalGetOptions());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDriver()) {
        hash = (37 * hash) + DRIVER_FIELD_NUMBER;
        hash = (53 * hash) + getDriver().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (!internalGetOptions().getMap().isEmpty()) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetOptions().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.FlexVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.FlexVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.FlexVolumeSource)
        io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 5:
            return internalGetOptions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 5:
            return internalGetMutableOptions();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_FlexVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.FlexVolumeSource.class,
                io.kubernetes.client.proto.V1.FlexVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.FlexVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        driver_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        internalGetMutableOptions().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexVolumeSource build() {
        io.kubernetes.client.proto.V1.FlexVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlexVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.FlexVolumeSource result =
            new io.kubernetes.client.proto.V1.FlexVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.driver_ = driver_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        result.options_ = internalGetOptions();
        result.options_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.FlexVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.FlexVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.FlexVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance())
          return this;
        if (other.hasDriver()) {
          bitField0_ |= 0x00000001;
          driver_ = other.driver_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        internalGetMutableOptions().mergeFrom(other.internalGetOptions());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.FlexVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.FlexVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object driver_ = "";
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public boolean hasDriver() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public java.lang.String getDriver() {
        java.lang.Object ref = driver_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            driver_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public com.google.protobuf.ByteString getDriverBytes() {
        java.lang.Object ref = driver_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          driver_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriver(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder clearDriver() {
        bitField0_ = (bitField0_ & ~0x00000001);
        driver_ = getDefaultInstance().getDriver();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Driver is the name of the driver to use for this volume.
       * </pre>
       *
       * <code>optional string driver = 1;</code>
       */
      public Builder setDriverBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        driver_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: SecretRef is reference to the secret object containing
       * sensitive information to pass to the plugin scripts. This may be
       * empty if no secret object is specified. If the secret object
       * contains more than one secret, all secrets are passed to the plugin
       * scripts.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> options_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetOptions() {
        if (options_ == null) {
          return com.google.protobuf.MapField.emptyMapField(OptionsDefaultEntryHolder.defaultEntry);
        }
        return options_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableOptions() {
        onChanged();
        ;
        if (options_ == null) {
          options_ =
              com.google.protobuf.MapField.newMapField(OptionsDefaultEntryHolder.defaultEntry);
        }
        if (!options_.isMutable()) {
          options_ = options_.copy();
        }
        return options_;
      }

      public int getOptionsCount() {
        return internalGetOptions().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public boolean containsOptions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetOptions().getMap().containsKey(key);
      }
      /** Use {@link #getOptionsMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getOptions() {
        return getOptionsMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getOptionsMap() {
        return internalGetOptions().getMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.lang.String getOptionsOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public java.lang.String getOptionsOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetOptions().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearOptions() {
        internalGetMutableOptions().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder removeOptions(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableOptions().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableOptions() {
        return internalGetMutableOptions().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder putOptions(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableOptions().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Extra command options if any.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; options = 5;</code>
       */
      public Builder putAllOptions(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableOptions().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.FlexVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.FlexVolumeSource)
    private static final io.kubernetes.client.proto.V1.FlexVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.FlexVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.FlexVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<FlexVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<FlexVolumeSource>() {
          @java.lang.Override
          public FlexVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new FlexVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<FlexVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FlexVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.FlexVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface FlockerVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.FlockerVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    boolean hasDatasetName();
    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    java.lang.String getDatasetName();
    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    com.google.protobuf.ByteString getDatasetNameBytes();

    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    boolean hasDatasetUUID();
    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    java.lang.String getDatasetUUID();
    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    com.google.protobuf.ByteString getDatasetUUIDBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a Flocker volume mounted by the Flocker agent.
   * One and only one of datasetName and datasetUUID should be set.
   * Flocker volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.FlockerVolumeSource}
   */
  public static final class FlockerVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.FlockerVolumeSource)
      FlockerVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use FlockerVolumeSource.newBuilder() to construct.
    private FlockerVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private FlockerVolumeSource() {
      datasetName_ = "";
      datasetUUID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private FlockerVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                datasetName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                datasetUUID_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_FlockerVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.FlockerVolumeSource.class,
              io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int DATASETNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object datasetName_;
    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    public boolean hasDatasetName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    public java.lang.String getDatasetName() {
      java.lang.Object ref = datasetName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          datasetName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
     * should be considered as deprecated
     * +optional
     * </pre>
     *
     * <code>optional string datasetName = 1;</code>
     */
    public com.google.protobuf.ByteString getDatasetNameBytes() {
      java.lang.Object ref = datasetName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        datasetName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATASETUUID_FIELD_NUMBER = 2;
    private volatile java.lang.Object datasetUUID_;
    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    public boolean hasDatasetUUID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    public java.lang.String getDatasetUUID() {
      java.lang.Object ref = datasetUUID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          datasetUUID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * UUID of the dataset. This is unique identifier of a Flocker dataset
     * +optional
     * </pre>
     *
     * <code>optional string datasetUUID = 2;</code>
     */
    public com.google.protobuf.ByteString getDatasetUUIDBytes() {
      java.lang.Object ref = datasetUUID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        datasetUUID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, datasetName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, datasetUUID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, datasetName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, datasetUUID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.FlockerVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.FlockerVolumeSource other =
          (io.kubernetes.client.proto.V1.FlockerVolumeSource) obj;

      boolean result = true;
      result = result && (hasDatasetName() == other.hasDatasetName());
      if (hasDatasetName()) {
        result = result && getDatasetName().equals(other.getDatasetName());
      }
      result = result && (hasDatasetUUID() == other.hasDatasetUUID());
      if (hasDatasetUUID()) {
        result = result && getDatasetUUID().equals(other.getDatasetUUID());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasDatasetName()) {
        hash = (37 * hash) + DATASETNAME_FIELD_NUMBER;
        hash = (53 * hash) + getDatasetName().hashCode();
      }
      if (hasDatasetUUID()) {
        hash = (37 * hash) + DATASETUUID_FIELD_NUMBER;
        hash = (53 * hash) + getDatasetUUID().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.FlockerVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Flocker volume mounted by the Flocker agent.
     * One and only one of datasetName and datasetUUID should be set.
     * Flocker volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.FlockerVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.FlockerVolumeSource)
        io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_FlockerVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.FlockerVolumeSource.class,
                io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.FlockerVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        datasetName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        datasetUUID_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlockerVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlockerVolumeSource build() {
        io.kubernetes.client.proto.V1.FlockerVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.FlockerVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.FlockerVolumeSource result =
            new io.kubernetes.client.proto.V1.FlockerVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.datasetName_ = datasetName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.datasetUUID_ = datasetUUID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.FlockerVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.FlockerVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.FlockerVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance())
          return this;
        if (other.hasDatasetName()) {
          bitField0_ |= 0x00000001;
          datasetName_ = other.datasetName_;
          onChanged();
        }
        if (other.hasDatasetUUID()) {
          bitField0_ |= 0x00000002;
          datasetUUID_ = other.datasetUUID_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.FlockerVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.FlockerVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object datasetName_ = "";
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public boolean hasDatasetName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public java.lang.String getDatasetName() {
        java.lang.Object ref = datasetName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            datasetName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public com.google.protobuf.ByteString getDatasetNameBytes() {
        java.lang.Object ref = datasetName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          datasetName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public Builder setDatasetName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        datasetName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public Builder clearDatasetName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        datasetName_ = getDefaultInstance().getDatasetName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the dataset stored as metadata -&gt; name on the dataset for Flocker
       * should be considered as deprecated
       * +optional
       * </pre>
       *
       * <code>optional string datasetName = 1;</code>
       */
      public Builder setDatasetNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        datasetName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object datasetUUID_ = "";
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public boolean hasDatasetUUID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public java.lang.String getDatasetUUID() {
        java.lang.Object ref = datasetUUID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            datasetUUID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public com.google.protobuf.ByteString getDatasetUUIDBytes() {
        java.lang.Object ref = datasetUUID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          datasetUUID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public Builder setDatasetUUID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        datasetUUID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public Builder clearDatasetUUID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        datasetUUID_ = getDefaultInstance().getDatasetUUID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UUID of the dataset. This is unique identifier of a Flocker dataset
       * +optional
       * </pre>
       *
       * <code>optional string datasetUUID = 2;</code>
       */
      public Builder setDatasetUUIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        datasetUUID_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.FlockerVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.FlockerVolumeSource)
    private static final io.kubernetes.client.proto.V1.FlockerVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.FlockerVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.FlockerVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<FlockerVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<FlockerVolumeSource>() {
          @java.lang.Override
          public FlockerVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new FlockerVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<FlockerVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<FlockerVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.FlockerVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface GCEPersistentDiskVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.GCEPersistentDiskVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    boolean hasPdName();
    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    java.lang.String getPdName();
    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    com.google.protobuf.ByteString getPdNameBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    boolean hasPartition();
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    int getPartition();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Persistent Disk resource in Google Compute Engine.
   * A GCE PD must exist before mounting to a container. The disk must
   * also be in the same GCE project and zone as the kubelet. A GCE PD
   * can only be mounted as read/write once or read-only many times. GCE
   * PDs support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.GCEPersistentDiskVolumeSource}
   */
  public static final class GCEPersistentDiskVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.GCEPersistentDiskVolumeSource)
      GCEPersistentDiskVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use GCEPersistentDiskVolumeSource.newBuilder() to construct.
    private GCEPersistentDiskVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GCEPersistentDiskVolumeSource() {
      pdName_ = "";
      fsType_ = "";
      partition_ = 0;
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private GCEPersistentDiskVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                pdName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                partition_ = input.readInt32();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.class,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int PDNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object pdName_;
    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    public boolean hasPdName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    public java.lang.String getPdName() {
      java.lang.Object ref = pdName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pdName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * </pre>
     *
     * <code>optional string pdName = 1;</code>
     */
    public com.google.protobuf.ByteString getPdNameBytes() {
      java.lang.Object ref = pdName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pdName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PARTITION_FIELD_NUMBER = 3;
    private int partition_;
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    public boolean hasPartition() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The partition in the volume that you want to mount.
     * If omitted, the default is to mount by volume name.
     * Examples: For volume /dev/sda1, you specify the partition as "1".
     * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional int32 partition = 3;</code>
     */
    public int getPartition() {
      return partition_;
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, pdName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, partition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, pdName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, partition_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource other =
          (io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource) obj;

      boolean result = true;
      result = result && (hasPdName() == other.hasPdName());
      if (hasPdName()) {
        result = result && getPdName().equals(other.getPdName());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasPartition() == other.hasPartition());
      if (hasPartition()) {
        result = result && (getPartition() == other.getPartition());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPdName()) {
        hash = (37 * hash) + PDNAME_FIELD_NUMBER;
        hash = (53 * hash) + getPdName().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasPartition()) {
        hash = (37 * hash) + PARTITION_FIELD_NUMBER;
        hash = (53 * hash) + getPartition();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Persistent Disk resource in Google Compute Engine.
     * A GCE PD must exist before mounting to a container. The disk must
     * also be in the same GCE project and zone as the kubelet. A GCE PD
     * can only be mounted as read/write once or read-only many times. GCE
     * PDs support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.GCEPersistentDiskVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.GCEPersistentDiskVolumeSource)
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.class,
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        pdName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        partition_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource result =
            new io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pdName_ = pdName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.partition_ = partition_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance())
          return this;
        if (other.hasPdName()) {
          bitField0_ |= 0x00000001;
          pdName_ = other.pdName_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasPartition()) {
          setPartition(other.getPartition());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object pdName_ = "";
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public boolean hasPdName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public java.lang.String getPdName() {
        java.lang.Object ref = pdName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pdName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public com.google.protobuf.ByteString getPdNameBytes() {
        java.lang.Object ref = pdName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          pdName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public Builder setPdName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        pdName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public Builder clearPdName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pdName_ = getDefaultInstance().getPdName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique name of the PD resource in GCE. Used to identify the disk in GCE.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * </pre>
       *
       * <code>optional string pdName = 1;</code>
       */
      public Builder setPdNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        pdName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private int partition_;
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public boolean hasPartition() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public int getPartition() {
        return partition_;
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public Builder setPartition(int value) {
        bitField0_ |= 0x00000004;
        partition_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The partition in the volume that you want to mount.
       * If omitted, the default is to mount by volume name.
       * Examples: For volume /dev/sda1, you specify the partition as "1".
       * Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional int32 partition = 3;</code>
       */
      public Builder clearPartition() {
        bitField0_ = (bitField0_ & ~0x00000004);
        partition_ = 0;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.GCEPersistentDiskVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.GCEPersistentDiskVolumeSource)
    private static final io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<GCEPersistentDiskVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<GCEPersistentDiskVolumeSource>() {
          @java.lang.Override
          public GCEPersistentDiskVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new GCEPersistentDiskVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<GCEPersistentDiskVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GCEPersistentDiskVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface GitRepoVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.GitRepoVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    boolean hasRepository();
    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    java.lang.String getRepository();
    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    com.google.protobuf.ByteString getRepositoryBytes();

    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    boolean hasRevision();
    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    java.lang.String getRevision();
    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    com.google.protobuf.ByteString getRevisionBytes();

    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    boolean hasDirectory();
    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    java.lang.String getDirectory();
    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    com.google.protobuf.ByteString getDirectoryBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a volume that is populated with the contents of a git repository.
   * Git repo volumes do not support ownership management.
   * Git repo volumes support SELinux relabeling.
   * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
   * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
   * into the Pod's container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.GitRepoVolumeSource}
   */
  public static final class GitRepoVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.GitRepoVolumeSource)
      GitRepoVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use GitRepoVolumeSource.newBuilder() to construct.
    private GitRepoVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GitRepoVolumeSource() {
      repository_ = "";
      revision_ = "";
      directory_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private GitRepoVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                repository_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                revision_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                directory_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.GitRepoVolumeSource.class,
              io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int REPOSITORY_FIELD_NUMBER = 1;
    private volatile java.lang.Object repository_;
    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    public boolean hasRepository() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    public java.lang.String getRepository() {
      java.lang.Object ref = repository_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          repository_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Repository URL
     * </pre>
     *
     * <code>optional string repository = 1;</code>
     */
    public com.google.protobuf.ByteString getRepositoryBytes() {
      java.lang.Object ref = repository_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        repository_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REVISION_FIELD_NUMBER = 2;
    private volatile java.lang.Object revision_;
    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    public boolean hasRevision() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    public java.lang.String getRevision() {
      java.lang.Object ref = revision_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          revision_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Commit hash for the specified revision.
     * +optional
     * </pre>
     *
     * <code>optional string revision = 2;</code>
     */
    public com.google.protobuf.ByteString getRevisionBytes() {
      java.lang.Object ref = revision_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        revision_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIRECTORY_FIELD_NUMBER = 3;
    private volatile java.lang.Object directory_;
    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    public boolean hasDirectory() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    public java.lang.String getDirectory() {
      java.lang.Object ref = directory_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          directory_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Target directory name.
     * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
     * git repository.  Otherwise, if specified, the volume will contain the git repository in
     * the subdirectory with the given name.
     * +optional
     * </pre>
     *
     * <code>optional string directory = 3;</code>
     */
    public com.google.protobuf.ByteString getDirectoryBytes() {
      java.lang.Object ref = directory_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        directory_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, repository_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, revision_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, directory_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, repository_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, revision_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, directory_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.GitRepoVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.GitRepoVolumeSource other =
          (io.kubernetes.client.proto.V1.GitRepoVolumeSource) obj;

      boolean result = true;
      result = result && (hasRepository() == other.hasRepository());
      if (hasRepository()) {
        result = result && getRepository().equals(other.getRepository());
      }
      result = result && (hasRevision() == other.hasRevision());
      if (hasRevision()) {
        result = result && getRevision().equals(other.getRevision());
      }
      result = result && (hasDirectory() == other.hasDirectory());
      if (hasDirectory()) {
        result = result && getDirectory().equals(other.getDirectory());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRepository()) {
        hash = (37 * hash) + REPOSITORY_FIELD_NUMBER;
        hash = (53 * hash) + getRepository().hashCode();
      }
      if (hasRevision()) {
        hash = (37 * hash) + REVISION_FIELD_NUMBER;
        hash = (53 * hash) + getRevision().hashCode();
      }
      if (hasDirectory()) {
        hash = (37 * hash) + DIRECTORY_FIELD_NUMBER;
        hash = (53 * hash) + getDirectory().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.GitRepoVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a volume that is populated with the contents of a git repository.
     * Git repo volumes do not support ownership management.
     * Git repo volumes support SELinux relabeling.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.GitRepoVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.GitRepoVolumeSource)
        io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.GitRepoVolumeSource.class,
                io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.GitRepoVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        repository_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        revision_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        directory_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GitRepoVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GitRepoVolumeSource build() {
        io.kubernetes.client.proto.V1.GitRepoVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GitRepoVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.GitRepoVolumeSource result =
            new io.kubernetes.client.proto.V1.GitRepoVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.repository_ = repository_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.revision_ = revision_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.directory_ = directory_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.GitRepoVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.GitRepoVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.GitRepoVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance())
          return this;
        if (other.hasRepository()) {
          bitField0_ |= 0x00000001;
          repository_ = other.repository_;
          onChanged();
        }
        if (other.hasRevision()) {
          bitField0_ |= 0x00000002;
          revision_ = other.revision_;
          onChanged();
        }
        if (other.hasDirectory()) {
          bitField0_ |= 0x00000004;
          directory_ = other.directory_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.GitRepoVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.GitRepoVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object repository_ = "";
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public boolean hasRepository() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public java.lang.String getRepository() {
        java.lang.Object ref = repository_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            repository_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public com.google.protobuf.ByteString getRepositoryBytes() {
        java.lang.Object ref = repository_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          repository_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public Builder setRepository(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        repository_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public Builder clearRepository() {
        bitField0_ = (bitField0_ & ~0x00000001);
        repository_ = getDefaultInstance().getRepository();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Repository URL
       * </pre>
       *
       * <code>optional string repository = 1;</code>
       */
      public Builder setRepositoryBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        repository_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object revision_ = "";
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public boolean hasRevision() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public java.lang.String getRevision() {
        java.lang.Object ref = revision_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            revision_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public com.google.protobuf.ByteString getRevisionBytes() {
        java.lang.Object ref = revision_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          revision_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public Builder setRevision(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        revision_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public Builder clearRevision() {
        bitField0_ = (bitField0_ & ~0x00000002);
        revision_ = getDefaultInstance().getRevision();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Commit hash for the specified revision.
       * +optional
       * </pre>
       *
       * <code>optional string revision = 2;</code>
       */
      public Builder setRevisionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        revision_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object directory_ = "";
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public boolean hasDirectory() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public java.lang.String getDirectory() {
        java.lang.Object ref = directory_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            directory_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public com.google.protobuf.ByteString getDirectoryBytes() {
        java.lang.Object ref = directory_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          directory_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public Builder setDirectory(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        directory_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public Builder clearDirectory() {
        bitField0_ = (bitField0_ & ~0x00000004);
        directory_ = getDefaultInstance().getDirectory();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target directory name.
       * Must not contain or start with '..'.  If '.' is supplied, the volume directory will be the
       * git repository.  Otherwise, if specified, the volume will contain the git repository in
       * the subdirectory with the given name.
       * +optional
       * </pre>
       *
       * <code>optional string directory = 3;</code>
       */
      public Builder setDirectoryBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        directory_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.GitRepoVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.GitRepoVolumeSource)
    private static final io.kubernetes.client.proto.V1.GitRepoVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.GitRepoVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.GitRepoVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<GitRepoVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<GitRepoVolumeSource>() {
          @java.lang.Override
          public GitRepoVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new GitRepoVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<GitRepoVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GitRepoVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.GitRepoVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface GlusterfsPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.GlusterfsPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    boolean hasEndpoints();
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    java.lang.String getEndpoints();
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    com.google.protobuf.ByteString getEndpointsBytes();

    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    boolean hasEndpointsNamespace();
    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    java.lang.String getEndpointsNamespace();
    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    com.google.protobuf.ByteString getEndpointsNamespaceBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a Glusterfs mount that lasts the lifetime of a pod.
   * Glusterfs volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.GlusterfsPersistentVolumeSource}
   */
  public static final class GlusterfsPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.GlusterfsPersistentVolumeSource)
      GlusterfsPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use GlusterfsPersistentVolumeSource.newBuilder() to construct.
    private GlusterfsPersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GlusterfsPersistentVolumeSource() {
      endpoints_ = "";
      path_ = "";
      readOnly_ = false;
      endpointsNamespace_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private GlusterfsPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                endpoints_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                path_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                endpointsNamespace_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int ENDPOINTS_FIELD_NUMBER = 1;
    private volatile java.lang.Object endpoints_;
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public boolean hasEndpoints() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public java.lang.String getEndpoints() {
      java.lang.Object ref = endpoints_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          endpoints_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public com.google.protobuf.ByteString getEndpointsBytes() {
      java.lang.Object ref = endpoints_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        endpoints_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int ENDPOINTSNAMESPACE_FIELD_NUMBER = 4;
    private volatile java.lang.Object endpointsNamespace_;
    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    public boolean hasEndpointsNamespace() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    public java.lang.String getEndpointsNamespace() {
      java.lang.Object ref = endpointsNamespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          endpointsNamespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
     * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional string endpointsNamespace = 4;</code>
     */
    public com.google.protobuf.ByteString getEndpointsNamespaceBytes() {
      java.lang.Object ref = endpointsNamespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        endpointsNamespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, endpoints_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, endpointsNamespace_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, endpoints_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, endpointsNamespace_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasEndpoints() == other.hasEndpoints());
      if (hasEndpoints()) {
        result = result && getEndpoints().equals(other.getEndpoints());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasEndpointsNamespace() == other.hasEndpointsNamespace());
      if (hasEndpointsNamespace()) {
        result = result && getEndpointsNamespace().equals(other.getEndpointsNamespace());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEndpoints()) {
        hash = (37 * hash) + ENDPOINTS_FIELD_NUMBER;
        hash = (53 * hash) + getEndpoints().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasEndpointsNamespace()) {
        hash = (37 * hash) + ENDPOINTSNAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getEndpointsNamespace().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Glusterfs mount that lasts the lifetime of a pod.
     * Glusterfs volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.GlusterfsPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.GlusterfsPersistentVolumeSource)
        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        endpoints_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        endpointsNamespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.endpoints_ = endpoints_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.endpointsNamespace_ = endpointsNamespace_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasEndpoints()) {
          bitField0_ |= 0x00000001;
          endpoints_ = other.endpoints_;
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasEndpointsNamespace()) {
          bitField0_ |= 0x00000008;
          endpointsNamespace_ = other.endpointsNamespace_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object endpoints_ = "";
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public boolean hasEndpoints() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public java.lang.String getEndpoints() {
        java.lang.Object ref = endpoints_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            endpoints_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public com.google.protobuf.ByteString getEndpointsBytes() {
        java.lang.Object ref = endpoints_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          endpoints_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder setEndpoints(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        endpoints_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder clearEndpoints() {
        bitField0_ = (bitField0_ & ~0x00000001);
        endpoints_ = getDefaultInstance().getEndpoints();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder setEndpointsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        endpoints_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object endpointsNamespace_ = "";
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public boolean hasEndpointsNamespace() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public java.lang.String getEndpointsNamespace() {
        java.lang.Object ref = endpointsNamespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            endpointsNamespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public com.google.protobuf.ByteString getEndpointsNamespaceBytes() {
        java.lang.Object ref = endpointsNamespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          endpointsNamespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public Builder setEndpointsNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        endpointsNamespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public Builder clearEndpointsNamespace() {
        bitField0_ = (bitField0_ & ~0x00000008);
        endpointsNamespace_ = getDefaultInstance().getEndpointsNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsNamespace is the namespace that contains Glusterfs endpoint.
       * If this field is empty, the EndpointNamespace defaults to the same namespace as the bound PVC.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional string endpointsNamespace = 4;</code>
       */
      public Builder setEndpointsNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        endpointsNamespace_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.GlusterfsPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.GlusterfsPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<GlusterfsPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<GlusterfsPersistentVolumeSource>() {
          @java.lang.Override
          public GlusterfsPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new GlusterfsPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<GlusterfsPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GlusterfsPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface GlusterfsVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.GlusterfsVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    boolean hasEndpoints();
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    java.lang.String getEndpoints();
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    com.google.protobuf.ByteString getEndpointsBytes();

    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Glusterfs mount that lasts the lifetime of a pod.
   * Glusterfs volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.GlusterfsVolumeSource}
   */
  public static final class GlusterfsVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.GlusterfsVolumeSource)
      GlusterfsVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use GlusterfsVolumeSource.newBuilder() to construct.
    private GlusterfsVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private GlusterfsVolumeSource() {
      endpoints_ = "";
      path_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private GlusterfsVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                endpoints_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                path_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource.class,
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int ENDPOINTS_FIELD_NUMBER = 1;
    private volatile java.lang.Object endpoints_;
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public boolean hasEndpoints() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public java.lang.String getEndpoints() {
      java.lang.Object ref = endpoints_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          endpoints_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * EndpointsName is the endpoint name that details Glusterfs topology.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string endpoints = 1;</code>
     */
    public com.google.protobuf.ByteString getEndpointsBytes() {
      java.lang.Object ref = endpoints_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        endpoints_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the Glusterfs volume path.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, endpoints_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, endpoints_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.GlusterfsVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.GlusterfsVolumeSource other =
          (io.kubernetes.client.proto.V1.GlusterfsVolumeSource) obj;

      boolean result = true;
      result = result && (hasEndpoints() == other.hasEndpoints());
      if (hasEndpoints()) {
        result = result && getEndpoints().equals(other.getEndpoints());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasEndpoints()) {
        hash = (37 * hash) + ENDPOINTS_FIELD_NUMBER;
        hash = (53 * hash) + getEndpoints().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.GlusterfsVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Glusterfs mount that lasts the lifetime of a pod.
     * Glusterfs volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.GlusterfsVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.GlusterfsVolumeSource)
        io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.GlusterfsVolumeSource.class,
                io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.GlusterfsVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        endpoints_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource build() {
        io.kubernetes.client.proto.V1.GlusterfsVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.GlusterfsVolumeSource result =
            new io.kubernetes.client.proto.V1.GlusterfsVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.endpoints_ = endpoints_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.GlusterfsVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.GlusterfsVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.GlusterfsVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance())
          return this;
        if (other.hasEndpoints()) {
          bitField0_ |= 0x00000001;
          endpoints_ = other.endpoints_;
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.GlusterfsVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.GlusterfsVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object endpoints_ = "";
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public boolean hasEndpoints() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public java.lang.String getEndpoints() {
        java.lang.Object ref = endpoints_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            endpoints_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public com.google.protobuf.ByteString getEndpointsBytes() {
        java.lang.Object ref = endpoints_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          endpoints_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder setEndpoints(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        endpoints_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder clearEndpoints() {
        bitField0_ = (bitField0_ & ~0x00000001);
        endpoints_ = getDefaultInstance().getEndpoints();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EndpointsName is the endpoint name that details Glusterfs topology.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string endpoints = 1;</code>
       */
      public Builder setEndpointsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        endpoints_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the Glusterfs volume path.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.GlusterfsVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.GlusterfsVolumeSource)
    private static final io.kubernetes.client.proto.V1.GlusterfsVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.GlusterfsVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.GlusterfsVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<GlusterfsVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<GlusterfsVolumeSource>() {
          @java.lang.Override
          public GlusterfsVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new GlusterfsVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<GlusterfsVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<GlusterfsVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.GlusterfsVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface HTTPGetActionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.HTTPGetAction)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    boolean hasPort();
    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrString getPort();
    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder();

    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    boolean hasHost();
    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    java.lang.String getHost();
    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    com.google.protobuf.ByteString getHostBytes();

    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    boolean hasScheme();
    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    java.lang.String getScheme();
    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    com.google.protobuf.ByteString getSchemeBytes();

    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.HTTPHeader> getHttpHeadersList();
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    io.kubernetes.client.proto.V1.HTTPHeader getHttpHeaders(int index);
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    int getHttpHeadersCount();
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>
        getHttpHeadersOrBuilderList();
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder getHttpHeadersOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * HTTPGetAction describes an action based on HTTP Get requests.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.HTTPGetAction}
   */
  public static final class HTTPGetAction extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.HTTPGetAction)
      HTTPGetActionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use HTTPGetAction.newBuilder() to construct.
    private HTTPGetAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private HTTPGetAction() {
      path_ = "";
      host_ = "";
      scheme_ = "";
      httpHeaders_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private HTTPGetAction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.IntStr.IntOrString.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = port_.toBuilder();
                }
                port_ =
                    input.readMessage(
                        io.kubernetes.client.proto.IntStr.IntOrString.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(port_);
                  port_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                host_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                scheme_ = bs;
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  httpHeaders_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.HTTPHeader>();
                  mutable_bitField0_ |= 0x00000010;
                }
                httpHeaders_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.HTTPHeader.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          httpHeaders_ = java.util.Collections.unmodifiableList(httpHeaders_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_HTTPGetAction_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.HTTPGetAction.class,
              io.kubernetes.client.proto.V1.HTTPGetAction.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path to access on the HTTP server.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PORT_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.IntStr.IntOrString port_;
    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrString getPort() {
      return port_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : port_;
    }
    /**
     *
     *
     * <pre>
     * Name or number of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder() {
      return port_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : port_;
    }

    public static final int HOST_FIELD_NUMBER = 3;
    private volatile java.lang.Object host_;
    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    public boolean hasHost() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          host_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Host name to connect to, defaults to the pod IP. You probably want to set
     * "Host" in httpHeaders instead.
     * +optional
     * </pre>
     *
     * <code>optional string host = 3;</code>
     */
    public com.google.protobuf.ByteString getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SCHEME_FIELD_NUMBER = 4;
    private volatile java.lang.Object scheme_;
    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    public boolean hasScheme() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    public java.lang.String getScheme() {
      java.lang.Object ref = scheme_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          scheme_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Scheme to use for connecting to the host.
     * Defaults to HTTP.
     * +optional
     * </pre>
     *
     * <code>optional string scheme = 4;</code>
     */
    public com.google.protobuf.ByteString getSchemeBytes() {
      java.lang.Object ref = scheme_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        scheme_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HTTPHEADERS_FIELD_NUMBER = 5;
    private java.util.List<io.kubernetes.client.proto.V1.HTTPHeader> httpHeaders_;
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.HTTPHeader> getHttpHeadersList() {
      return httpHeaders_;
    }
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>
        getHttpHeadersOrBuilderList() {
      return httpHeaders_;
    }
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    public int getHttpHeadersCount() {
      return httpHeaders_.size();
    }
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    public io.kubernetes.client.proto.V1.HTTPHeader getHttpHeaders(int index) {
      return httpHeaders_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Custom headers to set in the request. HTTP allows repeated headers.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
     */
    public io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder getHttpHeadersOrBuilder(int index) {
      return httpHeaders_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPort());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, host_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, scheme_);
      }
      for (int i = 0; i < httpHeaders_.size(); i++) {
        output.writeMessage(5, httpHeaders_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPort());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, host_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, scheme_);
      }
      for (int i = 0; i < httpHeaders_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, httpHeaders_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.HTTPGetAction)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.HTTPGetAction other =
          (io.kubernetes.client.proto.V1.HTTPGetAction) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasPort() == other.hasPort());
      if (hasPort()) {
        result = result && getPort().equals(other.getPort());
      }
      result = result && (hasHost() == other.hasHost());
      if (hasHost()) {
        result = result && getHost().equals(other.getHost());
      }
      result = result && (hasScheme() == other.hasScheme());
      if (hasScheme()) {
        result = result && getScheme().equals(other.getScheme());
      }
      result = result && getHttpHeadersList().equals(other.getHttpHeadersList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort().hashCode();
      }
      if (hasHost()) {
        hash = (37 * hash) + HOST_FIELD_NUMBER;
        hash = (53 * hash) + getHost().hashCode();
      }
      if (hasScheme()) {
        hash = (37 * hash) + SCHEME_FIELD_NUMBER;
        hash = (53 * hash) + getScheme().hashCode();
      }
      if (getHttpHeadersCount() > 0) {
        hash = (37 * hash) + HTTPHEADERS_FIELD_NUMBER;
        hash = (53 * hash) + getHttpHeadersList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.HTTPGetAction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * HTTPGetAction describes an action based on HTTP Get requests.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.HTTPGetAction}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.HTTPGetAction)
        io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_HTTPGetAction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.HTTPGetAction.class,
                io.kubernetes.client.proto.V1.HTTPGetAction.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.HTTPGetAction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPortFieldBuilder();
          getHttpHeadersFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (portBuilder_ == null) {
          port_ = null;
        } else {
          portBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        host_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        scheme_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        if (httpHeadersBuilder_ == null) {
          httpHeaders_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          httpHeadersBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPGetAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPGetAction build() {
        io.kubernetes.client.proto.V1.HTTPGetAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPGetAction buildPartial() {
        io.kubernetes.client.proto.V1.HTTPGetAction result =
            new io.kubernetes.client.proto.V1.HTTPGetAction(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (portBuilder_ == null) {
          result.port_ = port_;
        } else {
          result.port_ = portBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.host_ = host_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.scheme_ = scheme_;
        if (httpHeadersBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            httpHeaders_ = java.util.Collections.unmodifiableList(httpHeaders_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.httpHeaders_ = httpHeaders_;
        } else {
          result.httpHeaders_ = httpHeadersBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.HTTPGetAction) {
          return mergeFrom((io.kubernetes.client.proto.V1.HTTPGetAction) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.HTTPGetAction other) {
        if (other == io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()) return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasPort()) {
          mergePort(other.getPort());
        }
        if (other.hasHost()) {
          bitField0_ |= 0x00000004;
          host_ = other.host_;
          onChanged();
        }
        if (other.hasScheme()) {
          bitField0_ |= 0x00000008;
          scheme_ = other.scheme_;
          onChanged();
        }
        if (httpHeadersBuilder_ == null) {
          if (!other.httpHeaders_.isEmpty()) {
            if (httpHeaders_.isEmpty()) {
              httpHeaders_ = other.httpHeaders_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureHttpHeadersIsMutable();
              httpHeaders_.addAll(other.httpHeaders_);
            }
            onChanged();
          }
        } else {
          if (!other.httpHeaders_.isEmpty()) {
            if (httpHeadersBuilder_.isEmpty()) {
              httpHeadersBuilder_.dispose();
              httpHeadersBuilder_ = null;
              httpHeaders_ = other.httpHeaders_;
              bitField0_ = (bitField0_ & ~0x00000010);
              httpHeadersBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getHttpHeadersFieldBuilder()
                      : null;
            } else {
              httpHeadersBuilder_.addAllMessages(other.httpHeaders_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.HTTPGetAction parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.HTTPGetAction) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path to access on the HTTP server.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.IntStr.IntOrString port_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          portBuilder_;
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString getPort() {
        if (portBuilder_ == null) {
          return port_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : port_;
        } else {
          return portBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public Builder setPort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (portBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          port_ = value;
          onChanged();
        } else {
          portBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public Builder setPort(
          io.kubernetes.client.proto.IntStr.IntOrString.Builder builderForValue) {
        if (portBuilder_ == null) {
          port_ = builderForValue.build();
          onChanged();
        } else {
          portBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public Builder mergePort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (portBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && port_ != null
              && port_ != io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()) {
            port_ =
                io.kubernetes.client.proto.IntStr.IntOrString.newBuilder(port_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            port_ = value;
          }
          onChanged();
        } else {
          portBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public Builder clearPort() {
        if (portBuilder_ == null) {
          port_ = null;
          onChanged();
        } else {
          portBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString.Builder getPortBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPortFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder() {
        if (portBuilder_ != null) {
          return portBuilder_.getMessageOrBuilder();
        } else {
          return port_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : port_;
        }
      }
      /**
       *
       *
       * <pre>
       * Name or number of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          getPortFieldBuilder() {
        if (portBuilder_ == null) {
          portBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.IntStr.IntOrString,
                  io.kubernetes.client.proto.IntStr.IntOrString.Builder,
                  io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>(
                  getPort(), getParentForChildren(), isClean());
          port_ = null;
        }
        return portBuilder_;
      }

      private java.lang.Object host_ = "";
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public boolean hasHost() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            host_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public com.google.protobuf.ByteString getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public Builder setHost(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        host_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public Builder clearHost() {
        bitField0_ = (bitField0_ & ~0x00000004);
        host_ = getDefaultInstance().getHost();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Host name to connect to, defaults to the pod IP. You probably want to set
       * "Host" in httpHeaders instead.
       * +optional
       * </pre>
       *
       * <code>optional string host = 3;</code>
       */
      public Builder setHostBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        host_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object scheme_ = "";
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public boolean hasScheme() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public java.lang.String getScheme() {
        java.lang.Object ref = scheme_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            scheme_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public com.google.protobuf.ByteString getSchemeBytes() {
        java.lang.Object ref = scheme_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          scheme_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public Builder setScheme(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        scheme_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public Builder clearScheme() {
        bitField0_ = (bitField0_ & ~0x00000008);
        scheme_ = getDefaultInstance().getScheme();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Scheme to use for connecting to the host.
       * Defaults to HTTP.
       * +optional
       * </pre>
       *
       * <code>optional string scheme = 4;</code>
       */
      public Builder setSchemeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        scheme_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.HTTPHeader> httpHeaders_ =
          java.util.Collections.emptyList();

      private void ensureHttpHeadersIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          httpHeaders_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.HTTPHeader>(httpHeaders_);
          bitField0_ |= 0x00000010;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.HTTPHeader,
              io.kubernetes.client.proto.V1.HTTPHeader.Builder,
              io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>
          httpHeadersBuilder_;

      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.HTTPHeader> getHttpHeadersList() {
        if (httpHeadersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(httpHeaders_);
        } else {
          return httpHeadersBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public int getHttpHeadersCount() {
        if (httpHeadersBuilder_ == null) {
          return httpHeaders_.size();
        } else {
          return httpHeadersBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPHeader getHttpHeaders(int index) {
        if (httpHeadersBuilder_ == null) {
          return httpHeaders_.get(index);
        } else {
          return httpHeadersBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder setHttpHeaders(int index, io.kubernetes.client.proto.V1.HTTPHeader value) {
        if (httpHeadersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHttpHeadersIsMutable();
          httpHeaders_.set(index, value);
          onChanged();
        } else {
          httpHeadersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder setHttpHeaders(
          int index, io.kubernetes.client.proto.V1.HTTPHeader.Builder builderForValue) {
        if (httpHeadersBuilder_ == null) {
          ensureHttpHeadersIsMutable();
          httpHeaders_.set(index, builderForValue.build());
          onChanged();
        } else {
          httpHeadersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder addHttpHeaders(io.kubernetes.client.proto.V1.HTTPHeader value) {
        if (httpHeadersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHttpHeadersIsMutable();
          httpHeaders_.add(value);
          onChanged();
        } else {
          httpHeadersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder addHttpHeaders(int index, io.kubernetes.client.proto.V1.HTTPHeader value) {
        if (httpHeadersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHttpHeadersIsMutable();
          httpHeaders_.add(index, value);
          onChanged();
        } else {
          httpHeadersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder addHttpHeaders(
          io.kubernetes.client.proto.V1.HTTPHeader.Builder builderForValue) {
        if (httpHeadersBuilder_ == null) {
          ensureHttpHeadersIsMutable();
          httpHeaders_.add(builderForValue.build());
          onChanged();
        } else {
          httpHeadersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder addHttpHeaders(
          int index, io.kubernetes.client.proto.V1.HTTPHeader.Builder builderForValue) {
        if (httpHeadersBuilder_ == null) {
          ensureHttpHeadersIsMutable();
          httpHeaders_.add(index, builderForValue.build());
          onChanged();
        } else {
          httpHeadersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder addAllHttpHeaders(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.HTTPHeader> values) {
        if (httpHeadersBuilder_ == null) {
          ensureHttpHeadersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, httpHeaders_);
          onChanged();
        } else {
          httpHeadersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder clearHttpHeaders() {
        if (httpHeadersBuilder_ == null) {
          httpHeaders_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          httpHeadersBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public Builder removeHttpHeaders(int index) {
        if (httpHeadersBuilder_ == null) {
          ensureHttpHeadersIsMutable();
          httpHeaders_.remove(index);
          onChanged();
        } else {
          httpHeadersBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPHeader.Builder getHttpHeadersBuilder(int index) {
        return getHttpHeadersFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder getHttpHeadersOrBuilder(int index) {
        if (httpHeadersBuilder_ == null) {
          return httpHeaders_.get(index);
        } else {
          return httpHeadersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>
          getHttpHeadersOrBuilderList() {
        if (httpHeadersBuilder_ != null) {
          return httpHeadersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(httpHeaders_);
        }
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPHeader.Builder addHttpHeadersBuilder() {
        return getHttpHeadersFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.HTTPHeader.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPHeader.Builder addHttpHeadersBuilder(int index) {
        return getHttpHeadersFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.HTTPHeader.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Custom headers to set in the request. HTTP allows repeated headers.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HTTPHeader httpHeaders = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.HTTPHeader.Builder>
          getHttpHeadersBuilderList() {
        return getHttpHeadersFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.HTTPHeader,
              io.kubernetes.client.proto.V1.HTTPHeader.Builder,
              io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>
          getHttpHeadersFieldBuilder() {
        if (httpHeadersBuilder_ == null) {
          httpHeadersBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.HTTPHeader,
                  io.kubernetes.client.proto.V1.HTTPHeader.Builder,
                  io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder>(
                  httpHeaders_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          httpHeaders_ = null;
        }
        return httpHeadersBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.HTTPGetAction)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.HTTPGetAction)
    private static final io.kubernetes.client.proto.V1.HTTPGetAction DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.HTTPGetAction();
    }

    public static io.kubernetes.client.proto.V1.HTTPGetAction getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<HTTPGetAction> PARSER =
        new com.google.protobuf.AbstractParser<HTTPGetAction>() {
          @java.lang.Override
          public HTTPGetAction parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new HTTPGetAction(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<HTTPGetAction> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HTTPGetAction> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.HTTPGetAction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface HTTPHeaderOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.HTTPHeader)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString getValueBytes();
  }
  /**
   *
   *
   * <pre>
   * HTTPHeader describes a custom header to be used in HTTP probes
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.HTTPHeader}
   */
  public static final class HTTPHeader extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.HTTPHeader)
      HTTPHeaderOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use HTTPHeader.newBuilder() to construct.
    private HTTPHeader(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private HTTPHeader() {
      name_ = "";
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private HTTPHeader(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                value_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_HTTPHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.HTTPHeader.class,
              io.kubernetes.client.proto.V1.HTTPHeader.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The header field name
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The header field value
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.HTTPHeader)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.HTTPHeader other =
          (io.kubernetes.client.proto.V1.HTTPHeader) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.HTTPHeader prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * HTTPHeader describes a custom header to be used in HTTP probes
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.HTTPHeader}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.HTTPHeader)
        io.kubernetes.client.proto.V1.HTTPHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_HTTPHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.HTTPHeader.class,
                io.kubernetes.client.proto.V1.HTTPHeader.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.HTTPHeader.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPHeader getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HTTPHeader.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPHeader build() {
        io.kubernetes.client.proto.V1.HTTPHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HTTPHeader buildPartial() {
        io.kubernetes.client.proto.V1.HTTPHeader result =
            new io.kubernetes.client.proto.V1.HTTPHeader(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.HTTPHeader) {
          return mergeFrom((io.kubernetes.client.proto.V1.HTTPHeader) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.HTTPHeader other) {
        if (other == io.kubernetes.client.proto.V1.HTTPHeader.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.HTTPHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.HTTPHeader) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The header field name
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The header field value
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.HTTPHeader)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.HTTPHeader)
    private static final io.kubernetes.client.proto.V1.HTTPHeader DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.HTTPHeader();
    }

    public static io.kubernetes.client.proto.V1.HTTPHeader getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<HTTPHeader> PARSER =
        new com.google.protobuf.AbstractParser<HTTPHeader>() {
          @java.lang.Override
          public HTTPHeader parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new HTTPHeader(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<HTTPHeader> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HTTPHeader> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.HTTPHeader getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface HandlerOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Handler)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    boolean hasExec();
    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    io.kubernetes.client.proto.V1.ExecAction getExec();
    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    io.kubernetes.client.proto.V1.ExecActionOrBuilder getExecOrBuilder();

    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    boolean hasHttpGet();
    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    io.kubernetes.client.proto.V1.HTTPGetAction getHttpGet();
    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder getHttpGetOrBuilder();

    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    boolean hasTcpSocket();
    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    io.kubernetes.client.proto.V1.TCPSocketAction getTcpSocket();
    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder getTcpSocketOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Handler defines a specific action that should be taken
   * TODO: pass structured data to these actions, and document that data here.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Handler}
   */
  public static final class Handler extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Handler)
      HandlerOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Handler.newBuilder() to construct.
    private Handler(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Handler() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Handler(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.ExecAction.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = exec_.toBuilder();
                }
                exec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ExecAction.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(exec_);
                  exec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.HTTPGetAction.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = httpGet_.toBuilder();
                }
                httpGet_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.HTTPGetAction.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(httpGet_);
                  httpGet_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.TCPSocketAction.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = tcpSocket_.toBuilder();
                }
                tcpSocket_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.TCPSocketAction.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(tcpSocket_);
                  tcpSocket_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Handler_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Handler_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Handler.class,
              io.kubernetes.client.proto.V1.Handler.Builder.class);
    }

    private int bitField0_;
    public static final int EXEC_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.ExecAction exec_;
    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    public boolean hasExec() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ExecAction getExec() {
      return exec_ == null ? io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance() : exec_;
    }
    /**
     *
     *
     * <pre>
     * One and only one of the following should be specified.
     * Exec specifies the action to take.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ExecActionOrBuilder getExecOrBuilder() {
      return exec_ == null ? io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance() : exec_;
    }

    public static final int HTTPGET_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.HTTPGetAction httpGet_;
    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    public boolean hasHttpGet() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    public io.kubernetes.client.proto.V1.HTTPGetAction getHttpGet() {
      return httpGet_ == null
          ? io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()
          : httpGet_;
    }
    /**
     *
     *
     * <pre>
     * HTTPGet specifies the http request to perform.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
     */
    public io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder getHttpGetOrBuilder() {
      return httpGet_ == null
          ? io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()
          : httpGet_;
    }

    public static final int TCPSOCKET_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.TCPSocketAction tcpSocket_;
    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    public boolean hasTcpSocket() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    public io.kubernetes.client.proto.V1.TCPSocketAction getTcpSocket() {
      return tcpSocket_ == null
          ? io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance()
          : tcpSocket_;
    }
    /**
     *
     *
     * <pre>
     * TCPSocket specifies an action involving a TCP port.
     * TCP hooks not yet supported
     * TODO: implement a realistic TCP lifecycle hook
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
     */
    public io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder getTcpSocketOrBuilder() {
      return tcpSocket_ == null
          ? io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance()
          : tcpSocket_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getExec());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getHttpGet());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getTcpSocket());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getExec());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getHttpGet());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTcpSocket());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Handler)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Handler other = (io.kubernetes.client.proto.V1.Handler) obj;

      boolean result = true;
      result = result && (hasExec() == other.hasExec());
      if (hasExec()) {
        result = result && getExec().equals(other.getExec());
      }
      result = result && (hasHttpGet() == other.hasHttpGet());
      if (hasHttpGet()) {
        result = result && getHttpGet().equals(other.getHttpGet());
      }
      result = result && (hasTcpSocket() == other.hasTcpSocket());
      if (hasTcpSocket()) {
        result = result && getTcpSocket().equals(other.getTcpSocket());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasExec()) {
        hash = (37 * hash) + EXEC_FIELD_NUMBER;
        hash = (53 * hash) + getExec().hashCode();
      }
      if (hasHttpGet()) {
        hash = (37 * hash) + HTTPGET_FIELD_NUMBER;
        hash = (53 * hash) + getHttpGet().hashCode();
      }
      if (hasTcpSocket()) {
        hash = (37 * hash) + TCPSOCKET_FIELD_NUMBER;
        hash = (53 * hash) + getTcpSocket().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Handler parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Handler parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Handler parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Handler prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Handler defines a specific action that should be taken
     * TODO: pass structured data to these actions, and document that data here.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Handler}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Handler)
        io.kubernetes.client.proto.V1.HandlerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Handler_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Handler_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Handler.class,
                io.kubernetes.client.proto.V1.Handler.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Handler.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getExecFieldBuilder();
          getHttpGetFieldBuilder();
          getTcpSocketFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (execBuilder_ == null) {
          exec_ = null;
        } else {
          execBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (httpGetBuilder_ == null) {
          httpGet_ = null;
        } else {
          httpGetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (tcpSocketBuilder_ == null) {
          tcpSocket_ = null;
        } else {
          tcpSocketBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Handler_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Handler getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Handler.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Handler build() {
        io.kubernetes.client.proto.V1.Handler result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Handler buildPartial() {
        io.kubernetes.client.proto.V1.Handler result =
            new io.kubernetes.client.proto.V1.Handler(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (execBuilder_ == null) {
          result.exec_ = exec_;
        } else {
          result.exec_ = execBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (httpGetBuilder_ == null) {
          result.httpGet_ = httpGet_;
        } else {
          result.httpGet_ = httpGetBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (tcpSocketBuilder_ == null) {
          result.tcpSocket_ = tcpSocket_;
        } else {
          result.tcpSocket_ = tcpSocketBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Handler) {
          return mergeFrom((io.kubernetes.client.proto.V1.Handler) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Handler other) {
        if (other == io.kubernetes.client.proto.V1.Handler.getDefaultInstance()) return this;
        if (other.hasExec()) {
          mergeExec(other.getExec());
        }
        if (other.hasHttpGet()) {
          mergeHttpGet(other.getHttpGet());
        }
        if (other.hasTcpSocket()) {
          mergeTcpSocket(other.getTcpSocket());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Handler parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Handler) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ExecAction exec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ExecAction,
              io.kubernetes.client.proto.V1.ExecAction.Builder,
              io.kubernetes.client.proto.V1.ExecActionOrBuilder>
          execBuilder_;
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public boolean hasExec() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ExecAction getExec() {
        if (execBuilder_ == null) {
          return exec_ == null
              ? io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance()
              : exec_;
        } else {
          return execBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public Builder setExec(io.kubernetes.client.proto.V1.ExecAction value) {
        if (execBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          exec_ = value;
          onChanged();
        } else {
          execBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public Builder setExec(io.kubernetes.client.proto.V1.ExecAction.Builder builderForValue) {
        if (execBuilder_ == null) {
          exec_ = builderForValue.build();
          onChanged();
        } else {
          execBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public Builder mergeExec(io.kubernetes.client.proto.V1.ExecAction value) {
        if (execBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && exec_ != null
              && exec_ != io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance()) {
            exec_ =
                io.kubernetes.client.proto.V1.ExecAction.newBuilder(exec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            exec_ = value;
          }
          onChanged();
        } else {
          execBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public Builder clearExec() {
        if (execBuilder_ == null) {
          exec_ = null;
          onChanged();
        } else {
          execBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ExecAction.Builder getExecBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getExecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ExecActionOrBuilder getExecOrBuilder() {
        if (execBuilder_ != null) {
          return execBuilder_.getMessageOrBuilder();
        } else {
          return exec_ == null
              ? io.kubernetes.client.proto.V1.ExecAction.getDefaultInstance()
              : exec_;
        }
      }
      /**
       *
       *
       * <pre>
       * One and only one of the following should be specified.
       * Exec specifies the action to take.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ExecAction exec = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ExecAction,
              io.kubernetes.client.proto.V1.ExecAction.Builder,
              io.kubernetes.client.proto.V1.ExecActionOrBuilder>
          getExecFieldBuilder() {
        if (execBuilder_ == null) {
          execBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ExecAction,
                  io.kubernetes.client.proto.V1.ExecAction.Builder,
                  io.kubernetes.client.proto.V1.ExecActionOrBuilder>(
                  getExec(), getParentForChildren(), isClean());
          exec_ = null;
        }
        return execBuilder_;
      }

      private io.kubernetes.client.proto.V1.HTTPGetAction httpGet_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HTTPGetAction,
              io.kubernetes.client.proto.V1.HTTPGetAction.Builder,
              io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder>
          httpGetBuilder_;
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public boolean hasHttpGet() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPGetAction getHttpGet() {
        if (httpGetBuilder_ == null) {
          return httpGet_ == null
              ? io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()
              : httpGet_;
        } else {
          return httpGetBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public Builder setHttpGet(io.kubernetes.client.proto.V1.HTTPGetAction value) {
        if (httpGetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          httpGet_ = value;
          onChanged();
        } else {
          httpGetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public Builder setHttpGet(
          io.kubernetes.client.proto.V1.HTTPGetAction.Builder builderForValue) {
        if (httpGetBuilder_ == null) {
          httpGet_ = builderForValue.build();
          onChanged();
        } else {
          httpGetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public Builder mergeHttpGet(io.kubernetes.client.proto.V1.HTTPGetAction value) {
        if (httpGetBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && httpGet_ != null
              && httpGet_ != io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()) {
            httpGet_ =
                io.kubernetes.client.proto.V1.HTTPGetAction.newBuilder(httpGet_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            httpGet_ = value;
          }
          onChanged();
        } else {
          httpGetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public Builder clearHttpGet() {
        if (httpGetBuilder_ == null) {
          httpGet_ = null;
          onChanged();
        } else {
          httpGetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPGetAction.Builder getHttpGetBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getHttpGetFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      public io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder getHttpGetOrBuilder() {
        if (httpGetBuilder_ != null) {
          return httpGetBuilder_.getMessageOrBuilder();
        } else {
          return httpGet_ == null
              ? io.kubernetes.client.proto.V1.HTTPGetAction.getDefaultInstance()
              : httpGet_;
        }
      }
      /**
       *
       *
       * <pre>
       * HTTPGet specifies the http request to perform.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HTTPGetAction httpGet = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HTTPGetAction,
              io.kubernetes.client.proto.V1.HTTPGetAction.Builder,
              io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder>
          getHttpGetFieldBuilder() {
        if (httpGetBuilder_ == null) {
          httpGetBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.HTTPGetAction,
                  io.kubernetes.client.proto.V1.HTTPGetAction.Builder,
                  io.kubernetes.client.proto.V1.HTTPGetActionOrBuilder>(
                  getHttpGet(), getParentForChildren(), isClean());
          httpGet_ = null;
        }
        return httpGetBuilder_;
      }

      private io.kubernetes.client.proto.V1.TCPSocketAction tcpSocket_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.TCPSocketAction,
              io.kubernetes.client.proto.V1.TCPSocketAction.Builder,
              io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder>
          tcpSocketBuilder_;
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public boolean hasTcpSocket() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public io.kubernetes.client.proto.V1.TCPSocketAction getTcpSocket() {
        if (tcpSocketBuilder_ == null) {
          return tcpSocket_ == null
              ? io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance()
              : tcpSocket_;
        } else {
          return tcpSocketBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public Builder setTcpSocket(io.kubernetes.client.proto.V1.TCPSocketAction value) {
        if (tcpSocketBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          tcpSocket_ = value;
          onChanged();
        } else {
          tcpSocketBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public Builder setTcpSocket(
          io.kubernetes.client.proto.V1.TCPSocketAction.Builder builderForValue) {
        if (tcpSocketBuilder_ == null) {
          tcpSocket_ = builderForValue.build();
          onChanged();
        } else {
          tcpSocketBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public Builder mergeTcpSocket(io.kubernetes.client.proto.V1.TCPSocketAction value) {
        if (tcpSocketBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && tcpSocket_ != null
              && tcpSocket_ != io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance()) {
            tcpSocket_ =
                io.kubernetes.client.proto.V1.TCPSocketAction.newBuilder(tcpSocket_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            tcpSocket_ = value;
          }
          onChanged();
        } else {
          tcpSocketBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public Builder clearTcpSocket() {
        if (tcpSocketBuilder_ == null) {
          tcpSocket_ = null;
          onChanged();
        } else {
          tcpSocketBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public io.kubernetes.client.proto.V1.TCPSocketAction.Builder getTcpSocketBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getTcpSocketFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      public io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder getTcpSocketOrBuilder() {
        if (tcpSocketBuilder_ != null) {
          return tcpSocketBuilder_.getMessageOrBuilder();
        } else {
          return tcpSocket_ == null
              ? io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance()
              : tcpSocket_;
        }
      }
      /**
       *
       *
       * <pre>
       * TCPSocket specifies an action involving a TCP port.
       * TCP hooks not yet supported
       * TODO: implement a realistic TCP lifecycle hook
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TCPSocketAction tcpSocket = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.TCPSocketAction,
              io.kubernetes.client.proto.V1.TCPSocketAction.Builder,
              io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder>
          getTcpSocketFieldBuilder() {
        if (tcpSocketBuilder_ == null) {
          tcpSocketBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.TCPSocketAction,
                  io.kubernetes.client.proto.V1.TCPSocketAction.Builder,
                  io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder>(
                  getTcpSocket(), getParentForChildren(), isClean());
          tcpSocket_ = null;
        }
        return tcpSocketBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Handler)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Handler)
    private static final io.kubernetes.client.proto.V1.Handler DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Handler();
    }

    public static io.kubernetes.client.proto.V1.Handler getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Handler> PARSER =
        new com.google.protobuf.AbstractParser<Handler>() {
          @java.lang.Override
          public Handler parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Handler(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Handler> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Handler> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Handler getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface HostAliasOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.HostAlias)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    boolean hasIp();
    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    java.lang.String getIp();
    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    com.google.protobuf.ByteString getIpBytes();

    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    java.util.List<java.lang.String> getHostnamesList();
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    int getHostnamesCount();
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    java.lang.String getHostnames(int index);
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    com.google.protobuf.ByteString getHostnamesBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
   * pod's hosts file.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.HostAlias}
   */
  public static final class HostAlias extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.HostAlias)
      HostAliasOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use HostAlias.newBuilder() to construct.
    private HostAlias(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private HostAlias() {
      ip_ = "";
      hostnames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private HostAlias(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                ip_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  hostnames_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                hostnames_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          hostnames_ = hostnames_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_HostAlias_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_HostAlias_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.HostAlias.class,
              io.kubernetes.client.proto.V1.HostAlias.Builder.class);
    }

    private int bitField0_;
    public static final int IP_FIELD_NUMBER = 1;
    private volatile java.lang.Object ip_;
    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public boolean hasIp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public java.lang.String getIp() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ip_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * IP address of the host file entry.
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public com.google.protobuf.ByteString getIpBytes() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        ip_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTNAMES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList hostnames_;
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getHostnamesList() {
      return hostnames_;
    }
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    public int getHostnamesCount() {
      return hostnames_.size();
    }
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    public java.lang.String getHostnames(int index) {
      return hostnames_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Hostnames for the above IP address.
     * </pre>
     *
     * <code>repeated string hostnames = 2;</code>
     */
    public com.google.protobuf.ByteString getHostnamesBytes(int index) {
      return hostnames_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_);
      }
      for (int i = 0; i < hostnames_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hostnames_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < hostnames_.size(); i++) {
          dataSize += computeStringSizeNoTag(hostnames_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getHostnamesList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.HostAlias)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.HostAlias other = (io.kubernetes.client.proto.V1.HostAlias) obj;

      boolean result = true;
      result = result && (hasIp() == other.hasIp());
      if (hasIp()) {
        result = result && getIp().equals(other.getIp());
      }
      result = result && getHostnamesList().equals(other.getHostnamesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasIp()) {
        hash = (37 * hash) + IP_FIELD_NUMBER;
        hash = (53 * hash) + getIp().hashCode();
      }
      if (getHostnamesCount() > 0) {
        hash = (37 * hash) + HOSTNAMES_FIELD_NUMBER;
        hash = (53 * hash) + getHostnamesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostAlias parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.HostAlias prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the
     * pod's hosts file.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.HostAlias}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.HostAlias)
        io.kubernetes.client.proto.V1.HostAliasOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HostAlias_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_HostAlias_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.HostAlias.class,
                io.kubernetes.client.proto.V1.HostAlias.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.HostAlias.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostnames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HostAlias_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostAlias getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HostAlias.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostAlias build() {
        io.kubernetes.client.proto.V1.HostAlias result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostAlias buildPartial() {
        io.kubernetes.client.proto.V1.HostAlias result =
            new io.kubernetes.client.proto.V1.HostAlias(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ip_ = ip_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          hostnames_ = hostnames_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.hostnames_ = hostnames_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.HostAlias) {
          return mergeFrom((io.kubernetes.client.proto.V1.HostAlias) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.HostAlias other) {
        if (other == io.kubernetes.client.proto.V1.HostAlias.getDefaultInstance()) return this;
        if (other.hasIp()) {
          bitField0_ |= 0x00000001;
          ip_ = other.ip_;
          onChanged();
        }
        if (!other.hostnames_.isEmpty()) {
          if (hostnames_.isEmpty()) {
            hostnames_ = other.hostnames_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureHostnamesIsMutable();
            hostnames_.addAll(other.hostnames_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.HostAlias parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.HostAlias) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object ip_ = "";
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public boolean hasIp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public java.lang.String getIp() {
        java.lang.Object ref = ip_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ip_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public com.google.protobuf.ByteString getIpBytes() {
        java.lang.Object ref = ip_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          ip_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIp(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = getDefaultInstance().getIp();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address of the host file entry.
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIpBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList hostnames_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureHostnamesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          hostnames_ = new com.google.protobuf.LazyStringArrayList(hostnames_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getHostnamesList() {
        return hostnames_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public int getHostnamesCount() {
        return hostnames_.size();
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public java.lang.String getHostnames(int index) {
        return hostnames_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public com.google.protobuf.ByteString getHostnamesBytes(int index) {
        return hostnames_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public Builder setHostnames(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureHostnamesIsMutable();
        hostnames_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public Builder addHostnames(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureHostnamesIsMutable();
        hostnames_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public Builder addAllHostnames(java.lang.Iterable<java.lang.String> values) {
        ensureHostnamesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, hostnames_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public Builder clearHostnames() {
        hostnames_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostnames for the above IP address.
       * </pre>
       *
       * <code>repeated string hostnames = 2;</code>
       */
      public Builder addHostnamesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureHostnamesIsMutable();
        hostnames_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.HostAlias)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.HostAlias)
    private static final io.kubernetes.client.proto.V1.HostAlias DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.HostAlias();
    }

    public static io.kubernetes.client.proto.V1.HostAlias getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<HostAlias> PARSER =
        new com.google.protobuf.AbstractParser<HostAlias>() {
          @java.lang.Override
          public HostAlias parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new HostAlias(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<HostAlias> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HostAlias> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.HostAlias getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface HostPathVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.HostPathVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a host path mapped into a pod.
   * Host path volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.HostPathVolumeSource}
   */
  public static final class HostPathVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.HostPathVolumeSource)
      HostPathVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use HostPathVolumeSource.newBuilder() to construct.
    private HostPathVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private HostPathVolumeSource() {
      path_ = "";
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private HostPathVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                type_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_HostPathVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.HostPathVolumeSource.class,
              io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path of the directory on the host.
     * If the path is a symlink, it will follow the link to the real path.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type for HostPath Volume
     * Defaults to ""
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional string type = 2;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, type_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, type_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.HostPathVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.HostPathVolumeSource other =
          (io.kubernetes.client.proto.V1.HostPathVolumeSource) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.HostPathVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a host path mapped into a pod.
     * Host path volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.HostPathVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.HostPathVolumeSource)
        io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_HostPathVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.HostPathVolumeSource.class,
                io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.HostPathVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostPathVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostPathVolumeSource build() {
        io.kubernetes.client.proto.V1.HostPathVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.HostPathVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.HostPathVolumeSource result =
            new io.kubernetes.client.proto.V1.HostPathVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.HostPathVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.HostPathVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.HostPathVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000002;
          type_ = other.type_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.HostPathVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.HostPathVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path of the directory on the host.
       * If the path is a symlink, it will follow the link to the real path.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type for HostPath Volume
       * Defaults to ""
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional string type = 2;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        type_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.HostPathVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.HostPathVolumeSource)
    private static final io.kubernetes.client.proto.V1.HostPathVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.HostPathVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.HostPathVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<HostPathVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<HostPathVolumeSource>() {
          @java.lang.Override
          public HostPathVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new HostPathVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<HostPathVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<HostPathVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.HostPathVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ISCSIPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ISCSIPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    boolean hasTargetPortal();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    java.lang.String getTargetPortal();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    com.google.protobuf.ByteString getTargetPortalBytes();

    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    boolean hasIqn();
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    java.lang.String getIqn();
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    com.google.protobuf.ByteString getIqnBytes();

    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    boolean hasLun();
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    int getLun();

    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    boolean hasIscsiInterface();
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    java.lang.String getIscsiInterface();
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    com.google.protobuf.ByteString getIscsiInterfaceBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    java.util.List<java.lang.String> getPortalsList();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    int getPortalsCount();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    java.lang.String getPortals(int index);
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    com.google.protobuf.ByteString getPortalsBytes(int index);

    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    boolean hasChapAuthDiscovery();
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    boolean getChapAuthDiscovery();

    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    boolean hasChapAuthSession();
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    boolean getChapAuthSession();

    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    boolean hasInitiatorName();
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    java.lang.String getInitiatorName();
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    com.google.protobuf.ByteString getInitiatorNameBytes();
  }
  /**
   *
   *
   * <pre>
   * ISCSIPersistentVolumeSource represents an ISCSI disk.
   * ISCSI volumes can only be mounted as read/write once.
   * ISCSI volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ISCSIPersistentVolumeSource}
   */
  public static final class ISCSIPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ISCSIPersistentVolumeSource)
      ISCSIPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ISCSIPersistentVolumeSource.newBuilder() to construct.
    private ISCSIPersistentVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ISCSIPersistentVolumeSource() {
      targetPortal_ = "";
      iqn_ = "";
      lun_ = 0;
      iscsiInterface_ = "";
      fsType_ = "";
      readOnly_ = false;
      portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      chapAuthDiscovery_ = false;
      chapAuthSession_ = false;
      initiatorName_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ISCSIPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                targetPortal_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                iqn_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                lun_ = input.readInt32();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                iscsiInterface_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                fsType_ = bs;
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000020;
                readOnly_ = input.readBool();
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  portals_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000040;
                }
                portals_.add(bs);
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000040;
                chapAuthDiscovery_ = input.readBool();
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
            case 88:
              {
                bitField0_ |= 0x00000080;
                chapAuthSession_ = input.readBool();
                break;
              }
            case 98:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000200;
                initiatorName_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = portals_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int TARGETPORTAL_FIELD_NUMBER = 1;
    private volatile java.lang.Object targetPortal_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public boolean hasTargetPortal() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public java.lang.String getTargetPortal() {
      java.lang.Object ref = targetPortal_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          targetPortal_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public com.google.protobuf.ByteString getTargetPortalBytes() {
      java.lang.Object ref = targetPortal_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        targetPortal_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IQN_FIELD_NUMBER = 2;
    private volatile java.lang.Object iqn_;
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public boolean hasIqn() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public java.lang.String getIqn() {
      java.lang.Object ref = iqn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          iqn_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public com.google.protobuf.ByteString getIqnBytes() {
      java.lang.Object ref = iqn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        iqn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LUN_FIELD_NUMBER = 3;
    private int lun_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    public boolean hasLun() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    public int getLun() {
      return lun_;
    }

    public static final int ISCSIINTERFACE_FIELD_NUMBER = 4;
    private volatile java.lang.Object iscsiInterface_;
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public boolean hasIscsiInterface() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public java.lang.String getIscsiInterface() {
      java.lang.Object ref = iscsiInterface_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          iscsiInterface_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public com.google.protobuf.ByteString getIscsiInterfaceBytes() {
      java.lang.Object ref = iscsiInterface_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        iscsiInterface_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 5;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 6;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int PORTALS_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList portals_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList getPortalsList() {
      return portals_;
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public int getPortalsCount() {
      return portals_.size();
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public java.lang.String getPortals(int index) {
      return portals_.get(index);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public com.google.protobuf.ByteString getPortalsBytes(int index) {
      return portals_.getByteString(index);
    }

    public static final int CHAPAUTHDISCOVERY_FIELD_NUMBER = 8;
    private boolean chapAuthDiscovery_;
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    public boolean hasChapAuthDiscovery() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    public boolean getChapAuthDiscovery() {
      return chapAuthDiscovery_;
    }

    public static final int CHAPAUTHSESSION_FIELD_NUMBER = 11;
    private boolean chapAuthSession_;
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    public boolean hasChapAuthSession() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    public boolean getChapAuthSession() {
      return chapAuthSession_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int INITIATORNAME_FIELD_NUMBER = 12;
    private volatile java.lang.Object initiatorName_;
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public boolean hasInitiatorName() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public java.lang.String getInitiatorName() {
      java.lang.Object ref = initiatorName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          initiatorName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public com.google.protobuf.ByteString getInitiatorNameBytes() {
      java.lang.Object ref = initiatorName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        initiatorName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, targetPortal_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, iqn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, lun_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, iscsiInterface_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, fsType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, readOnly_);
      }
      for (int i = 0; i < portals_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, portals_.getRaw(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, chapAuthDiscovery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(10, getSecretRef());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(11, chapAuthSession_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, initiatorName_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, targetPortal_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, iqn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, lun_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, iscsiInterface_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, fsType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, readOnly_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < portals_.size(); i++) {
          dataSize += computeStringSizeNoTag(portals_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPortalsList().size();
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, chapAuthDiscovery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getSecretRef());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(11, chapAuthSession_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, initiatorName_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasTargetPortal() == other.hasTargetPortal());
      if (hasTargetPortal()) {
        result = result && getTargetPortal().equals(other.getTargetPortal());
      }
      result = result && (hasIqn() == other.hasIqn());
      if (hasIqn()) {
        result = result && getIqn().equals(other.getIqn());
      }
      result = result && (hasLun() == other.hasLun());
      if (hasLun()) {
        result = result && (getLun() == other.getLun());
      }
      result = result && (hasIscsiInterface() == other.hasIscsiInterface());
      if (hasIscsiInterface()) {
        result = result && getIscsiInterface().equals(other.getIscsiInterface());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && getPortalsList().equals(other.getPortalsList());
      result = result && (hasChapAuthDiscovery() == other.hasChapAuthDiscovery());
      if (hasChapAuthDiscovery()) {
        result = result && (getChapAuthDiscovery() == other.getChapAuthDiscovery());
      }
      result = result && (hasChapAuthSession() == other.hasChapAuthSession());
      if (hasChapAuthSession()) {
        result = result && (getChapAuthSession() == other.getChapAuthSession());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasInitiatorName() == other.hasInitiatorName());
      if (hasInitiatorName()) {
        result = result && getInitiatorName().equals(other.getInitiatorName());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTargetPortal()) {
        hash = (37 * hash) + TARGETPORTAL_FIELD_NUMBER;
        hash = (53 * hash) + getTargetPortal().hashCode();
      }
      if (hasIqn()) {
        hash = (37 * hash) + IQN_FIELD_NUMBER;
        hash = (53 * hash) + getIqn().hashCode();
      }
      if (hasLun()) {
        hash = (37 * hash) + LUN_FIELD_NUMBER;
        hash = (53 * hash) + getLun();
      }
      if (hasIscsiInterface()) {
        hash = (37 * hash) + ISCSIINTERFACE_FIELD_NUMBER;
        hash = (53 * hash) + getIscsiInterface().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (getPortalsCount() > 0) {
        hash = (37 * hash) + PORTALS_FIELD_NUMBER;
        hash = (53 * hash) + getPortalsList().hashCode();
      }
      if (hasChapAuthDiscovery()) {
        hash = (37 * hash) + CHAPAUTHDISCOVERY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getChapAuthDiscovery());
      }
      if (hasChapAuthSession()) {
        hash = (37 * hash) + CHAPAUTHSESSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getChapAuthSession());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasInitiatorName()) {
        hash = (37 * hash) + INITIATORNAME_FIELD_NUMBER;
        hash = (53 * hash) + getInitiatorName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ISCSIPersistentVolumeSource represents an ISCSI disk.
     * ISCSI volumes can only be mounted as read/write once.
     * ISCSI volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ISCSIPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ISCSIPersistentVolumeSource)
        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetPortal_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        iqn_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        lun_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        iscsiInterface_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        chapAuthDiscovery_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        chapAuthSession_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        initiatorName_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.targetPortal_ = targetPortal_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.iqn_ = iqn_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.lun_ = lun_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.iscsiInterface_ = iscsiInterface_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.readOnly_ = readOnly_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = portals_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.portals_ = portals_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.chapAuthDiscovery_ = chapAuthDiscovery_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.chapAuthSession_ = chapAuthSession_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000200;
        }
        result.initiatorName_ = initiatorName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasTargetPortal()) {
          bitField0_ |= 0x00000001;
          targetPortal_ = other.targetPortal_;
          onChanged();
        }
        if (other.hasIqn()) {
          bitField0_ |= 0x00000002;
          iqn_ = other.iqn_;
          onChanged();
        }
        if (other.hasLun()) {
          setLun(other.getLun());
        }
        if (other.hasIscsiInterface()) {
          bitField0_ |= 0x00000008;
          iscsiInterface_ = other.iscsiInterface_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000010;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (!other.portals_.isEmpty()) {
          if (portals_.isEmpty()) {
            portals_ = other.portals_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensurePortalsIsMutable();
            portals_.addAll(other.portals_);
          }
          onChanged();
        }
        if (other.hasChapAuthDiscovery()) {
          setChapAuthDiscovery(other.getChapAuthDiscovery());
        }
        if (other.hasChapAuthSession()) {
          setChapAuthSession(other.getChapAuthSession());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasInitiatorName()) {
          bitField0_ |= 0x00000400;
          initiatorName_ = other.initiatorName_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object targetPortal_ = "";
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public boolean hasTargetPortal() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public java.lang.String getTargetPortal() {
        java.lang.Object ref = targetPortal_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            targetPortal_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public com.google.protobuf.ByteString getTargetPortalBytes() {
        java.lang.Object ref = targetPortal_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          targetPortal_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder setTargetPortal(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        targetPortal_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder clearTargetPortal() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPortal_ = getDefaultInstance().getTargetPortal();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder setTargetPortalBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        targetPortal_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object iqn_ = "";
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public boolean hasIqn() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public java.lang.String getIqn() {
        java.lang.Object ref = iqn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            iqn_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public com.google.protobuf.ByteString getIqnBytes() {
        java.lang.Object ref = iqn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          iqn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder setIqn(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        iqn_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder clearIqn() {
        bitField0_ = (bitField0_ & ~0x00000002);
        iqn_ = getDefaultInstance().getIqn();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder setIqnBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        iqn_ = value;
        onChanged();
        return this;
      }

      private int lun_;
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public boolean hasLun() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public int getLun() {
        return lun_;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public Builder setLun(int value) {
        bitField0_ |= 0x00000004;
        lun_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public Builder clearLun() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lun_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object iscsiInterface_ = "";
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public boolean hasIscsiInterface() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public java.lang.String getIscsiInterface() {
        java.lang.Object ref = iscsiInterface_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            iscsiInterface_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public com.google.protobuf.ByteString getIscsiInterfaceBytes() {
        java.lang.Object ref = iscsiInterface_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          iscsiInterface_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder setIscsiInterface(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        iscsiInterface_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder clearIscsiInterface() {
        bitField0_ = (bitField0_ & ~0x00000008);
        iscsiInterface_ = getDefaultInstance().getIscsiInterface();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder setIscsiInterfaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        iscsiInterface_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000020;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList portals_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensurePortalsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = new com.google.protobuf.LazyStringArrayList(portals_);
          bitField0_ |= 0x00000040;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList getPortalsList() {
        return portals_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public int getPortalsCount() {
        return portals_.size();
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public java.lang.String getPortals(int index) {
        return portals_.get(index);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public com.google.protobuf.ByteString getPortalsBytes(int index) {
        return portals_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder setPortals(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addPortals(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addAllPortals(java.lang.Iterable<java.lang.String> values) {
        ensurePortalsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, portals_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder clearPortals() {
        portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addPortalsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.add(value);
        onChanged();
        return this;
      }

      private boolean chapAuthDiscovery_;
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public boolean hasChapAuthDiscovery() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public boolean getChapAuthDiscovery() {
        return chapAuthDiscovery_;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public Builder setChapAuthDiscovery(boolean value) {
        bitField0_ |= 0x00000080;
        chapAuthDiscovery_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public Builder clearChapAuthDiscovery() {
        bitField0_ = (bitField0_ & ~0x00000080);
        chapAuthDiscovery_ = false;
        onChanged();
        return this;
      }

      private boolean chapAuthSession_;
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public boolean hasChapAuthSession() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public boolean getChapAuthSession() {
        return chapAuthSession_;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public Builder setChapAuthSession(boolean value) {
        bitField0_ |= 0x00000100;
        chapAuthSession_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public Builder clearChapAuthSession() {
        bitField0_ = (bitField0_ & ~0x00000100);
        chapAuthSession_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private java.lang.Object initiatorName_ = "";
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public boolean hasInitiatorName() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public java.lang.String getInitiatorName() {
        java.lang.Object ref = initiatorName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            initiatorName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public com.google.protobuf.ByteString getInitiatorNameBytes() {
        java.lang.Object ref = initiatorName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          initiatorName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder setInitiatorName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        initiatorName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder clearInitiatorName() {
        bitField0_ = (bitField0_ & ~0x00000400);
        initiatorName_ = getDefaultInstance().getInitiatorName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder setInitiatorNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        initiatorName_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ISCSIPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ISCSIPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ISCSIPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ISCSIPersistentVolumeSource>() {
          @java.lang.Override
          public ISCSIPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ISCSIPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ISCSIPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ISCSIPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ISCSIVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ISCSIVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    boolean hasTargetPortal();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    java.lang.String getTargetPortal();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    com.google.protobuf.ByteString getTargetPortalBytes();

    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    boolean hasIqn();
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    java.lang.String getIqn();
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    com.google.protobuf.ByteString getIqnBytes();

    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    boolean hasLun();
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    int getLun();

    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    boolean hasIscsiInterface();
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    java.lang.String getIscsiInterface();
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    com.google.protobuf.ByteString getIscsiInterfaceBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    java.util.List<java.lang.String> getPortalsList();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    int getPortalsCount();
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    java.lang.String getPortals(int index);
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    com.google.protobuf.ByteString getPortalsBytes(int index);

    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    boolean hasChapAuthDiscovery();
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    boolean getChapAuthDiscovery();

    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    boolean hasChapAuthSession();
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    boolean getChapAuthSession();

    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    boolean hasInitiatorName();
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    java.lang.String getInitiatorName();
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    com.google.protobuf.ByteString getInitiatorNameBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents an ISCSI disk.
   * ISCSI volumes can only be mounted as read/write once.
   * ISCSI volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ISCSIVolumeSource}
   */
  public static final class ISCSIVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ISCSIVolumeSource)
      ISCSIVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ISCSIVolumeSource.newBuilder() to construct.
    private ISCSIVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ISCSIVolumeSource() {
      targetPortal_ = "";
      iqn_ = "";
      lun_ = 0;
      iscsiInterface_ = "";
      fsType_ = "";
      readOnly_ = false;
      portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      chapAuthDiscovery_ = false;
      chapAuthSession_ = false;
      initiatorName_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ISCSIVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                targetPortal_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                iqn_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                lun_ = input.readInt32();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                iscsiInterface_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                fsType_ = bs;
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000020;
                readOnly_ = input.readBool();
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  portals_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000040;
                }
                portals_.add(bs);
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000040;
                chapAuthDiscovery_ = input.readBool();
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
            case 88:
              {
                bitField0_ |= 0x00000080;
                chapAuthSession_ = input.readBool();
                break;
              }
            case 98:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000200;
                initiatorName_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = portals_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ISCSIVolumeSource.class,
              io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int TARGETPORTAL_FIELD_NUMBER = 1;
    private volatile java.lang.Object targetPortal_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public boolean hasTargetPortal() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public java.lang.String getTargetPortal() {
      java.lang.Object ref = targetPortal_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          targetPortal_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * </pre>
     *
     * <code>optional string targetPortal = 1;</code>
     */
    public com.google.protobuf.ByteString getTargetPortalBytes() {
      java.lang.Object ref = targetPortal_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        targetPortal_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int IQN_FIELD_NUMBER = 2;
    private volatile java.lang.Object iqn_;
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public boolean hasIqn() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public java.lang.String getIqn() {
      java.lang.Object ref = iqn_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          iqn_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Target iSCSI Qualified Name.
     * </pre>
     *
     * <code>optional string iqn = 2;</code>
     */
    public com.google.protobuf.ByteString getIqnBytes() {
      java.lang.Object ref = iqn_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        iqn_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LUN_FIELD_NUMBER = 3;
    private int lun_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    public boolean hasLun() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Lun number.
     * </pre>
     *
     * <code>optional int32 lun = 3;</code>
     */
    public int getLun() {
      return lun_;
    }

    public static final int ISCSIINTERFACE_FIELD_NUMBER = 4;
    private volatile java.lang.Object iscsiInterface_;
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public boolean hasIscsiInterface() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public java.lang.String getIscsiInterface() {
      java.lang.Object ref = iscsiInterface_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          iscsiInterface_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * iSCSI Interface Name that uses an iSCSI transport.
     * Defaults to 'default' (tcp).
     * +optional
     * </pre>
     *
     * <code>optional string iscsiInterface = 4;</code>
     */
    public com.google.protobuf.ByteString getIscsiInterfaceBytes() {
      java.lang.Object ref = iscsiInterface_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        iscsiInterface_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 5;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 5;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 6;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 6;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int PORTALS_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList portals_;
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList getPortalsList() {
      return portals_;
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public int getPortalsCount() {
      return portals_.size();
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public java.lang.String getPortals(int index) {
      return portals_.get(index);
    }
    /**
     *
     *
     * <pre>
     * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
     * is other than default (typically TCP ports 860 and 3260).
     * +optional
     * </pre>
     *
     * <code>repeated string portals = 7;</code>
     */
    public com.google.protobuf.ByteString getPortalsBytes(int index) {
      return portals_.getByteString(index);
    }

    public static final int CHAPAUTHDISCOVERY_FIELD_NUMBER = 8;
    private boolean chapAuthDiscovery_;
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    public boolean hasChapAuthDiscovery() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * whether support iSCSI Discovery CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthDiscovery = 8;</code>
     */
    public boolean getChapAuthDiscovery() {
      return chapAuthDiscovery_;
    }

    public static final int CHAPAUTHSESSION_FIELD_NUMBER = 11;
    private boolean chapAuthSession_;
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    public boolean hasChapAuthSession() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * whether support iSCSI Session CHAP authentication
     * +optional
     * </pre>
     *
     * <code>optional bool chapAuthSession = 11;</code>
     */
    public boolean getChapAuthSession() {
      return chapAuthSession_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * CHAP Secret for iSCSI target and initiator authentication
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int INITIATORNAME_FIELD_NUMBER = 12;
    private volatile java.lang.Object initiatorName_;
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public boolean hasInitiatorName() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public java.lang.String getInitiatorName() {
      java.lang.Object ref = initiatorName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          initiatorName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Custom iSCSI Initiator Name.
     * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
     * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
     * +optional
     * </pre>
     *
     * <code>optional string initiatorName = 12;</code>
     */
    public com.google.protobuf.ByteString getInitiatorNameBytes() {
      java.lang.Object ref = initiatorName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        initiatorName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, targetPortal_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, iqn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, lun_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, iscsiInterface_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, fsType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, readOnly_);
      }
      for (int i = 0; i < portals_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, portals_.getRaw(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, chapAuthDiscovery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(10, getSecretRef());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(11, chapAuthSession_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 12, initiatorName_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, targetPortal_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, iqn_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, lun_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, iscsiInterface_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, fsType_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, readOnly_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < portals_.size(); i++) {
          dataSize += computeStringSizeNoTag(portals_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getPortalsList().size();
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, chapAuthDiscovery_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getSecretRef());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(11, chapAuthSession_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(12, initiatorName_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ISCSIVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ISCSIVolumeSource other =
          (io.kubernetes.client.proto.V1.ISCSIVolumeSource) obj;

      boolean result = true;
      result = result && (hasTargetPortal() == other.hasTargetPortal());
      if (hasTargetPortal()) {
        result = result && getTargetPortal().equals(other.getTargetPortal());
      }
      result = result && (hasIqn() == other.hasIqn());
      if (hasIqn()) {
        result = result && getIqn().equals(other.getIqn());
      }
      result = result && (hasLun() == other.hasLun());
      if (hasLun()) {
        result = result && (getLun() == other.getLun());
      }
      result = result && (hasIscsiInterface() == other.hasIscsiInterface());
      if (hasIscsiInterface()) {
        result = result && getIscsiInterface().equals(other.getIscsiInterface());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && getPortalsList().equals(other.getPortalsList());
      result = result && (hasChapAuthDiscovery() == other.hasChapAuthDiscovery());
      if (hasChapAuthDiscovery()) {
        result = result && (getChapAuthDiscovery() == other.getChapAuthDiscovery());
      }
      result = result && (hasChapAuthSession() == other.hasChapAuthSession());
      if (hasChapAuthSession()) {
        result = result && (getChapAuthSession() == other.getChapAuthSession());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasInitiatorName() == other.hasInitiatorName());
      if (hasInitiatorName()) {
        result = result && getInitiatorName().equals(other.getInitiatorName());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasTargetPortal()) {
        hash = (37 * hash) + TARGETPORTAL_FIELD_NUMBER;
        hash = (53 * hash) + getTargetPortal().hashCode();
      }
      if (hasIqn()) {
        hash = (37 * hash) + IQN_FIELD_NUMBER;
        hash = (53 * hash) + getIqn().hashCode();
      }
      if (hasLun()) {
        hash = (37 * hash) + LUN_FIELD_NUMBER;
        hash = (53 * hash) + getLun();
      }
      if (hasIscsiInterface()) {
        hash = (37 * hash) + ISCSIINTERFACE_FIELD_NUMBER;
        hash = (53 * hash) + getIscsiInterface().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (getPortalsCount() > 0) {
        hash = (37 * hash) + PORTALS_FIELD_NUMBER;
        hash = (53 * hash) + getPortalsList().hashCode();
      }
      if (hasChapAuthDiscovery()) {
        hash = (37 * hash) + CHAPAUTHDISCOVERY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getChapAuthDiscovery());
      }
      if (hasChapAuthSession()) {
        hash = (37 * hash) + CHAPAUTHSESSION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getChapAuthSession());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasInitiatorName()) {
        hash = (37 * hash) + INITIATORNAME_FIELD_NUMBER;
        hash = (53 * hash) + getInitiatorName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ISCSIVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents an ISCSI disk.
     * ISCSI volumes can only be mounted as read/write once.
     * ISCSI volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ISCSIVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ISCSIVolumeSource)
        io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ISCSIVolumeSource.class,
                io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ISCSIVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        targetPortal_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        iqn_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        lun_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        iscsiInterface_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        chapAuthDiscovery_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        chapAuthSession_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        initiatorName_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource build() {
        io.kubernetes.client.proto.V1.ISCSIVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ISCSIVolumeSource result =
            new io.kubernetes.client.proto.V1.ISCSIVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.targetPortal_ = targetPortal_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.iqn_ = iqn_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.lun_ = lun_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.iscsiInterface_ = iscsiInterface_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.readOnly_ = readOnly_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = portals_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.portals_ = portals_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.chapAuthDiscovery_ = chapAuthDiscovery_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000080;
        }
        result.chapAuthSession_ = chapAuthSession_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000100;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000200;
        }
        result.initiatorName_ = initiatorName_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ISCSIVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ISCSIVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ISCSIVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance())
          return this;
        if (other.hasTargetPortal()) {
          bitField0_ |= 0x00000001;
          targetPortal_ = other.targetPortal_;
          onChanged();
        }
        if (other.hasIqn()) {
          bitField0_ |= 0x00000002;
          iqn_ = other.iqn_;
          onChanged();
        }
        if (other.hasLun()) {
          setLun(other.getLun());
        }
        if (other.hasIscsiInterface()) {
          bitField0_ |= 0x00000008;
          iscsiInterface_ = other.iscsiInterface_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000010;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (!other.portals_.isEmpty()) {
          if (portals_.isEmpty()) {
            portals_ = other.portals_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensurePortalsIsMutable();
            portals_.addAll(other.portals_);
          }
          onChanged();
        }
        if (other.hasChapAuthDiscovery()) {
          setChapAuthDiscovery(other.getChapAuthDiscovery());
        }
        if (other.hasChapAuthSession()) {
          setChapAuthSession(other.getChapAuthSession());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasInitiatorName()) {
          bitField0_ |= 0x00000400;
          initiatorName_ = other.initiatorName_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ISCSIVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ISCSIVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object targetPortal_ = "";
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public boolean hasTargetPortal() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public java.lang.String getTargetPortal() {
        java.lang.Object ref = targetPortal_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            targetPortal_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public com.google.protobuf.ByteString getTargetPortalBytes() {
        java.lang.Object ref = targetPortal_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          targetPortal_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder setTargetPortal(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        targetPortal_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder clearTargetPortal() {
        bitField0_ = (bitField0_ & ~0x00000001);
        targetPortal_ = getDefaultInstance().getTargetPortal();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * </pre>
       *
       * <code>optional string targetPortal = 1;</code>
       */
      public Builder setTargetPortalBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        targetPortal_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object iqn_ = "";
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public boolean hasIqn() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public java.lang.String getIqn() {
        java.lang.Object ref = iqn_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            iqn_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public com.google.protobuf.ByteString getIqnBytes() {
        java.lang.Object ref = iqn_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          iqn_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder setIqn(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        iqn_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder clearIqn() {
        bitField0_ = (bitField0_ & ~0x00000002);
        iqn_ = getDefaultInstance().getIqn();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Target iSCSI Qualified Name.
       * </pre>
       *
       * <code>optional string iqn = 2;</code>
       */
      public Builder setIqnBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        iqn_ = value;
        onChanged();
        return this;
      }

      private int lun_;
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public boolean hasLun() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public int getLun() {
        return lun_;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public Builder setLun(int value) {
        bitField0_ |= 0x00000004;
        lun_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Lun number.
       * </pre>
       *
       * <code>optional int32 lun = 3;</code>
       */
      public Builder clearLun() {
        bitField0_ = (bitField0_ & ~0x00000004);
        lun_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object iscsiInterface_ = "";
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public boolean hasIscsiInterface() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public java.lang.String getIscsiInterface() {
        java.lang.Object ref = iscsiInterface_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            iscsiInterface_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public com.google.protobuf.ByteString getIscsiInterfaceBytes() {
        java.lang.Object ref = iscsiInterface_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          iscsiInterface_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder setIscsiInterface(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        iscsiInterface_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder clearIscsiInterface() {
        bitField0_ = (bitField0_ & ~0x00000008);
        iscsiInterface_ = getDefaultInstance().getIscsiInterface();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Interface Name that uses an iSCSI transport.
       * Defaults to 'default' (tcp).
       * +optional
       * </pre>
       *
       * <code>optional string iscsiInterface = 4;</code>
       */
      public Builder setIscsiInterfaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        iscsiInterface_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000010);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 5;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000020;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 6;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000020);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList portals_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensurePortalsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          portals_ = new com.google.protobuf.LazyStringArrayList(portals_);
          bitField0_ |= 0x00000040;
        }
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList getPortalsList() {
        return portals_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public int getPortalsCount() {
        return portals_.size();
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public java.lang.String getPortals(int index) {
        return portals_.get(index);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public com.google.protobuf.ByteString getPortalsBytes(int index) {
        return portals_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder setPortals(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addPortals(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addAllPortals(java.lang.Iterable<java.lang.String> values) {
        ensurePortalsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, portals_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder clearPortals() {
        portals_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port
       * is other than default (typically TCP ports 860 and 3260).
       * +optional
       * </pre>
       *
       * <code>repeated string portals = 7;</code>
       */
      public Builder addPortalsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensurePortalsIsMutable();
        portals_.add(value);
        onChanged();
        return this;
      }

      private boolean chapAuthDiscovery_;
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public boolean hasChapAuthDiscovery() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public boolean getChapAuthDiscovery() {
        return chapAuthDiscovery_;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public Builder setChapAuthDiscovery(boolean value) {
        bitField0_ |= 0x00000080;
        chapAuthDiscovery_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Discovery CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthDiscovery = 8;</code>
       */
      public Builder clearChapAuthDiscovery() {
        bitField0_ = (bitField0_ & ~0x00000080);
        chapAuthDiscovery_ = false;
        onChanged();
        return this;
      }

      private boolean chapAuthSession_;
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public boolean hasChapAuthSession() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public boolean getChapAuthSession() {
        return chapAuthSession_;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public Builder setChapAuthSession(boolean value) {
        bitField0_ |= 0x00000100;
        chapAuthSession_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * whether support iSCSI Session CHAP authentication
       * +optional
       * </pre>
       *
       * <code>optional bool chapAuthSession = 11;</code>
       */
      public Builder clearChapAuthSession() {
        bitField0_ = (bitField0_ & ~0x00000100);
        chapAuthSession_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * CHAP Secret for iSCSI target and initiator authentication
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private java.lang.Object initiatorName_ = "";
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public boolean hasInitiatorName() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public java.lang.String getInitiatorName() {
        java.lang.Object ref = initiatorName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            initiatorName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public com.google.protobuf.ByteString getInitiatorNameBytes() {
        java.lang.Object ref = initiatorName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          initiatorName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder setInitiatorName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        initiatorName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder clearInitiatorName() {
        bitField0_ = (bitField0_ & ~0x00000400);
        initiatorName_ = getDefaultInstance().getInitiatorName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Custom iSCSI Initiator Name.
       * If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface
       * &lt;target portal&gt;:&lt;volume name&gt; will be created for the connection.
       * +optional
       * </pre>
       *
       * <code>optional string initiatorName = 12;</code>
       */
      public Builder setInitiatorNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        initiatorName_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ISCSIVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ISCSIVolumeSource)
    private static final io.kubernetes.client.proto.V1.ISCSIVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ISCSIVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ISCSIVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ISCSIVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ISCSIVolumeSource>() {
          @java.lang.Override
          public ISCSIVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ISCSIVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ISCSIVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ISCSIVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ISCSIVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface KeyToPathOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.KeyToPath)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 3;</code>
     */
    boolean hasMode();
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 3;</code>
     */
    int getMode();
  }
  /**
   *
   *
   * <pre>
   * Maps a string key to a path within a volume.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.KeyToPath}
   */
  public static final class KeyToPath extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.KeyToPath)
      KeyToPathOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use KeyToPath.newBuilder() to construct.
    private KeyToPath(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private KeyToPath() {
      key_ = "";
      path_ = "";
      mode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private KeyToPath(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                path_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                mode_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_KeyToPath_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_KeyToPath_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.KeyToPath.class,
              io.kubernetes.client.proto.V1.KeyToPath.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The key to project.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The relative path of the file to map the key to.
     * May not be an absolute path.
     * May not contain the path element '..'.
     * May not start with the string '..'.
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MODE_FIELD_NUMBER = 3;
    private int mode_;
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 3;</code>
     */
    public boolean hasMode() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on this file, must be a value between 0
     * and 0777. If not specified, the volume defaultMode will be used.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 mode = 3;</code>
     */
    public int getMode() {
      return mode_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, mode_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, mode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.KeyToPath)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.KeyToPath other = (io.kubernetes.client.proto.V1.KeyToPath) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasMode() == other.hasMode());
      if (hasMode()) {
        result = result && (getMode() == other.getMode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasMode()) {
        hash = (37 * hash) + MODE_FIELD_NUMBER;
        hash = (53 * hash) + getMode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.KeyToPath parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.KeyToPath prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Maps a string key to a path within a volume.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.KeyToPath}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.KeyToPath)
        io.kubernetes.client.proto.V1.KeyToPathOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_KeyToPath_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_KeyToPath_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.KeyToPath.class,
                io.kubernetes.client.proto.V1.KeyToPath.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.KeyToPath.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        mode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_KeyToPath_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.KeyToPath getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.KeyToPath build() {
        io.kubernetes.client.proto.V1.KeyToPath result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.KeyToPath buildPartial() {
        io.kubernetes.client.proto.V1.KeyToPath result =
            new io.kubernetes.client.proto.V1.KeyToPath(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.mode_ = mode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.KeyToPath) {
          return mergeFrom((io.kubernetes.client.proto.V1.KeyToPath) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.KeyToPath other) {
        if (other == io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasMode()) {
          setMode(other.getMode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.KeyToPath parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.KeyToPath) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key to project.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The relative path of the file to map the key to.
       * May not be an absolute path.
       * May not contain the path element '..'.
       * May not start with the string '..'.
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private int mode_;
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 3;</code>
       */
      public boolean hasMode() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 3;</code>
       */
      public int getMode() {
        return mode_;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 3;</code>
       */
      public Builder setMode(int value) {
        bitField0_ |= 0x00000004;
        mode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on this file, must be a value between 0
       * and 0777. If not specified, the volume defaultMode will be used.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 mode = 3;</code>
       */
      public Builder clearMode() {
        bitField0_ = (bitField0_ & ~0x00000004);
        mode_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.KeyToPath)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.KeyToPath)
    private static final io.kubernetes.client.proto.V1.KeyToPath DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.KeyToPath();
    }

    public static io.kubernetes.client.proto.V1.KeyToPath getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<KeyToPath> PARSER =
        new com.google.protobuf.AbstractParser<KeyToPath>() {
          @java.lang.Override
          public KeyToPath parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new KeyToPath(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<KeyToPath> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<KeyToPath> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.KeyToPath getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LifecycleOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Lifecycle)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    boolean hasPostStart();
    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    io.kubernetes.client.proto.V1.Handler getPostStart();
    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    io.kubernetes.client.proto.V1.HandlerOrBuilder getPostStartOrBuilder();

    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    boolean hasPreStop();
    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    io.kubernetes.client.proto.V1.Handler getPreStop();
    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    io.kubernetes.client.proto.V1.HandlerOrBuilder getPreStopOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Lifecycle describes actions that the management system should take in response to container lifecycle
   * events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
   * until the action is complete, unless the container process fails, in which case the handler is aborted.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Lifecycle}
   */
  public static final class Lifecycle extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Lifecycle)
      LifecycleOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Lifecycle.newBuilder() to construct.
    private Lifecycle(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Lifecycle() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Lifecycle(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.Handler.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = postStart_.toBuilder();
                }
                postStart_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Handler.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(postStart_);
                  postStart_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.Handler.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = preStop_.toBuilder();
                }
                preStop_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Handler.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(preStop_);
                  preStop_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Lifecycle_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Lifecycle_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Lifecycle.class,
              io.kubernetes.client.proto.V1.Lifecycle.Builder.class);
    }

    private int bitField0_;
    public static final int POSTSTART_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.Handler postStart_;
    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    public boolean hasPostStart() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    public io.kubernetes.client.proto.V1.Handler getPostStart() {
      return postStart_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : postStart_;
    }
    /**
     *
     *
     * <pre>
     * PostStart is called immediately after a container is created. If the handler fails,
     * the container is terminated and restarted according to its restart policy.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
     */
    public io.kubernetes.client.proto.V1.HandlerOrBuilder getPostStartOrBuilder() {
      return postStart_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : postStart_;
    }

    public static final int PRESTOP_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.Handler preStop_;
    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    public boolean hasPreStop() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Handler getPreStop() {
      return preStop_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : preStop_;
    }
    /**
     *
     *
     * <pre>
     * PreStop is called immediately before a container is terminated.
     * The container is terminated after the handler completes.
     * The reason for termination is passed to the handler.
     * Regardless of the outcome of the handler, the container is eventually terminated.
     * Other management of the container blocks until the hook completes.
     * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
     */
    public io.kubernetes.client.proto.V1.HandlerOrBuilder getPreStopOrBuilder() {
      return preStop_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : preStop_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getPostStart());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPreStop());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPostStart());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPreStop());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Lifecycle)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Lifecycle other = (io.kubernetes.client.proto.V1.Lifecycle) obj;

      boolean result = true;
      result = result && (hasPostStart() == other.hasPostStart());
      if (hasPostStart()) {
        result = result && getPostStart().equals(other.getPostStart());
      }
      result = result && (hasPreStop() == other.hasPreStop());
      if (hasPreStop()) {
        result = result && getPreStop().equals(other.getPreStop());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPostStart()) {
        hash = (37 * hash) + POSTSTART_FIELD_NUMBER;
        hash = (53 * hash) + getPostStart().hashCode();
      }
      if (hasPreStop()) {
        hash = (37 * hash) + PRESTOP_FIELD_NUMBER;
        hash = (53 * hash) + getPreStop().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Lifecycle parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Lifecycle prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Lifecycle describes actions that the management system should take in response to container lifecycle
     * events. For the PostStart and PreStop lifecycle handlers, management of the container blocks
     * until the action is complete, unless the container process fails, in which case the handler is aborted.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Lifecycle}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Lifecycle)
        io.kubernetes.client.proto.V1.LifecycleOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Lifecycle_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Lifecycle_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Lifecycle.class,
                io.kubernetes.client.proto.V1.Lifecycle.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Lifecycle.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPostStartFieldBuilder();
          getPreStopFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (postStartBuilder_ == null) {
          postStart_ = null;
        } else {
          postStartBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (preStopBuilder_ == null) {
          preStop_ = null;
        } else {
          preStopBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Lifecycle_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Lifecycle getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Lifecycle build() {
        io.kubernetes.client.proto.V1.Lifecycle result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Lifecycle buildPartial() {
        io.kubernetes.client.proto.V1.Lifecycle result =
            new io.kubernetes.client.proto.V1.Lifecycle(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (postStartBuilder_ == null) {
          result.postStart_ = postStart_;
        } else {
          result.postStart_ = postStartBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (preStopBuilder_ == null) {
          result.preStop_ = preStop_;
        } else {
          result.preStop_ = preStopBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Lifecycle) {
          return mergeFrom((io.kubernetes.client.proto.V1.Lifecycle) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Lifecycle other) {
        if (other == io.kubernetes.client.proto.V1.Lifecycle.getDefaultInstance()) return this;
        if (other.hasPostStart()) {
          mergePostStart(other.getPostStart());
        }
        if (other.hasPreStop()) {
          mergePreStop(other.getPreStop());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Lifecycle parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Lifecycle) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.Handler postStart_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          postStartBuilder_;
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public boolean hasPostStart() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Handler getPostStart() {
        if (postStartBuilder_ == null) {
          return postStart_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : postStart_;
        } else {
          return postStartBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public Builder setPostStart(io.kubernetes.client.proto.V1.Handler value) {
        if (postStartBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          postStart_ = value;
          onChanged();
        } else {
          postStartBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public Builder setPostStart(io.kubernetes.client.proto.V1.Handler.Builder builderForValue) {
        if (postStartBuilder_ == null) {
          postStart_ = builderForValue.build();
          onChanged();
        } else {
          postStartBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public Builder mergePostStart(io.kubernetes.client.proto.V1.Handler value) {
        if (postStartBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && postStart_ != null
              && postStart_ != io.kubernetes.client.proto.V1.Handler.getDefaultInstance()) {
            postStart_ =
                io.kubernetes.client.proto.V1.Handler.newBuilder(postStart_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            postStart_ = value;
          }
          onChanged();
        } else {
          postStartBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public Builder clearPostStart() {
        if (postStartBuilder_ == null) {
          postStart_ = null;
          onChanged();
        } else {
          postStartBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Handler.Builder getPostStartBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPostStartFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      public io.kubernetes.client.proto.V1.HandlerOrBuilder getPostStartOrBuilder() {
        if (postStartBuilder_ != null) {
          return postStartBuilder_.getMessageOrBuilder();
        } else {
          return postStart_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : postStart_;
        }
      }
      /**
       *
       *
       * <pre>
       * PostStart is called immediately after a container is created. If the handler fails,
       * the container is terminated and restarted according to its restart policy.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler postStart = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          getPostStartFieldBuilder() {
        if (postStartBuilder_ == null) {
          postStartBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Handler,
                  io.kubernetes.client.proto.V1.Handler.Builder,
                  io.kubernetes.client.proto.V1.HandlerOrBuilder>(
                  getPostStart(), getParentForChildren(), isClean());
          postStart_ = null;
        }
        return postStartBuilder_;
      }

      private io.kubernetes.client.proto.V1.Handler preStop_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          preStopBuilder_;
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public boolean hasPreStop() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Handler getPreStop() {
        if (preStopBuilder_ == null) {
          return preStop_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : preStop_;
        } else {
          return preStopBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public Builder setPreStop(io.kubernetes.client.proto.V1.Handler value) {
        if (preStopBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preStop_ = value;
          onChanged();
        } else {
          preStopBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public Builder setPreStop(io.kubernetes.client.proto.V1.Handler.Builder builderForValue) {
        if (preStopBuilder_ == null) {
          preStop_ = builderForValue.build();
          onChanged();
        } else {
          preStopBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public Builder mergePreStop(io.kubernetes.client.proto.V1.Handler value) {
        if (preStopBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && preStop_ != null
              && preStop_ != io.kubernetes.client.proto.V1.Handler.getDefaultInstance()) {
            preStop_ =
                io.kubernetes.client.proto.V1.Handler.newBuilder(preStop_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            preStop_ = value;
          }
          onChanged();
        } else {
          preStopBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public Builder clearPreStop() {
        if (preStopBuilder_ == null) {
          preStop_ = null;
          onChanged();
        } else {
          preStopBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Handler.Builder getPreStopBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPreStopFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      public io.kubernetes.client.proto.V1.HandlerOrBuilder getPreStopOrBuilder() {
        if (preStopBuilder_ != null) {
          return preStopBuilder_.getMessageOrBuilder();
        } else {
          return preStop_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : preStop_;
        }
      }
      /**
       *
       *
       * <pre>
       * PreStop is called immediately before a container is terminated.
       * The container is terminated after the handler completes.
       * The reason for termination is passed to the handler.
       * Regardless of the outcome of the handler, the container is eventually terminated.
       * Other management of the container blocks until the hook completes.
       * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler preStop = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          getPreStopFieldBuilder() {
        if (preStopBuilder_ == null) {
          preStopBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Handler,
                  io.kubernetes.client.proto.V1.Handler.Builder,
                  io.kubernetes.client.proto.V1.HandlerOrBuilder>(
                  getPreStop(), getParentForChildren(), isClean());
          preStop_ = null;
        }
        return preStopBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Lifecycle)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Lifecycle)
    private static final io.kubernetes.client.proto.V1.Lifecycle DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Lifecycle();
    }

    public static io.kubernetes.client.proto.V1.Lifecycle getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Lifecycle> PARSER =
        new com.google.protobuf.AbstractParser<Lifecycle>() {
          @java.lang.Override
          public Lifecycle parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Lifecycle(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Lifecycle> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Lifecycle> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Lifecycle getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LimitRangeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LimitRange)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.LimitRangeSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder getSpecOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * LimitRange sets resource usage limits for each kind of resource in a Namespace.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LimitRange}
   */
  public static final class LimitRange extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LimitRange)
      LimitRangeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LimitRange.newBuilder() to construct.
    private LimitRange(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LimitRange() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LimitRange(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.LimitRangeSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LimitRangeSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_LimitRange_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LimitRange_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LimitRange.class,
              io.kubernetes.client.proto.V1.LimitRange.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.LimitRangeSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRangeSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the limits enforced.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()
          : spec_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LimitRange)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LimitRange other =
          (io.kubernetes.client.proto.V1.LimitRange) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRange parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LimitRange prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LimitRange sets resource usage limits for each kind of resource in a Namespace.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LimitRange}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LimitRange)
        io.kubernetes.client.proto.V1.LimitRangeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRange_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LimitRange_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LimitRange.class,
                io.kubernetes.client.proto.V1.LimitRange.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LimitRange.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRange_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRange getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRange.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRange build() {
        io.kubernetes.client.proto.V1.LimitRange result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRange buildPartial() {
        io.kubernetes.client.proto.V1.LimitRange result =
            new io.kubernetes.client.proto.V1.LimitRange(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LimitRange) {
          return mergeFrom((io.kubernetes.client.proto.V1.LimitRange) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LimitRange other) {
        if (other == io.kubernetes.client.proto.V1.LimitRange.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LimitRange parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.LimitRange) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.LimitRangeSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRangeSpec,
              io.kubernetes.client.proto.V1.LimitRangeSpec.Builder,
              io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.LimitRangeSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.LimitRangeSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.LimitRangeSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.LimitRangeSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the limits enforced.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LimitRangeSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRangeSpec,
              io.kubernetes.client.proto.V1.LimitRangeSpec.Builder,
              io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LimitRangeSpec,
                  io.kubernetes.client.proto.V1.LimitRangeSpec.Builder,
                  io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LimitRange)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LimitRange)
    private static final io.kubernetes.client.proto.V1.LimitRange DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LimitRange();
    }

    public static io.kubernetes.client.proto.V1.LimitRange getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LimitRange> PARSER =
        new com.google.protobuf.AbstractParser<LimitRange>() {
          @java.lang.Override
          public LimitRange parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LimitRange(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LimitRange> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LimitRange> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LimitRange getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LimitRangeItemOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LimitRangeItem)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    int getMaxCount();
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    boolean containsMax(java.lang.String key);
    /** Use {@link #getMaxMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMax();
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMaxMap();
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMaxOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMaxOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    int getMinCount();
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    boolean containsMin(java.lang.String key);
    /** Use {@link #getMinMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMin();
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMinMap();
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMinOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMinOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    int getDefaultCount();
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    boolean containsDefault(java.lang.String key);
    /** Use {@link #getDefaultMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getDefault();
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getDefaultMap();
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getDefaultOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getDefaultOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    int getDefaultRequestCount();
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    boolean containsDefaultRequest(java.lang.String key);
    /** Use {@link #getDefaultRequestMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefaultRequest();
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefaultRequestMap();
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    int getMaxLimitRequestRatioCount();
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    boolean containsMaxLimitRequestRatio(java.lang.String key);
    /** Use {@link #getMaxLimitRequestRatioMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMaxLimitRequestRatio();
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMaxLimitRequestRatioMap();
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrThrow(
        java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * LimitRangeItem defines a min/max usage limit for any resource that matches on kind.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LimitRangeItem}
   */
  public static final class LimitRangeItem extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LimitRangeItem)
      LimitRangeItemOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LimitRangeItem.newBuilder() to construct.
    private LimitRangeItem(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LimitRangeItem() {
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LimitRangeItem(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  max_ =
                      com.google.protobuf.MapField.newMapField(MaxDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    max__ =
                        input.readMessage(
                            MaxDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                max_.getMutableMap().put(max__.getKey(), max__.getValue());
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  min_ =
                      com.google.protobuf.MapField.newMapField(MinDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000004;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    min__ =
                        input.readMessage(
                            MinDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                min_.getMutableMap().put(min__.getKey(), min__.getValue());
                break;
              }
            case 34:
              {
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  default_ =
                      com.google.protobuf.MapField.newMapField(
                          DefaultDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000008;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    default__ =
                        input.readMessage(
                            DefaultDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                default_.getMutableMap().put(default__.getKey(), default__.getValue());
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  defaultRequest_ =
                      com.google.protobuf.MapField.newMapField(
                          DefaultRequestDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000010;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    defaultRequest__ =
                        input.readMessage(
                            DefaultRequestDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                defaultRequest_
                    .getMutableMap()
                    .put(defaultRequest__.getKey(), defaultRequest__.getValue());
                break;
              }
            case 50:
              {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  maxLimitRequestRatio_ =
                      com.google.protobuf.MapField.newMapField(
                          MaxLimitRequestRatioDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000020;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    maxLimitRequestRatio__ =
                        input.readMessage(
                            MaxLimitRequestRatioDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                maxLimitRequestRatio_
                    .getMutableMap()
                    .put(maxLimitRequestRatio__.getKey(), maxLimitRequestRatio__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 2:
          return internalGetMax();
        case 3:
          return internalGetMin();
        case 4:
          return internalGetDefault();
        case 5:
          return internalGetDefaultRequest();
        case 6:
          return internalGetMaxLimitRequestRatio();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LimitRangeItem_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LimitRangeItem.class,
              io.kubernetes.client.proto.V1.LimitRangeItem.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type of resource that this limit applies to.
     * +optional
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAX_FIELD_NUMBER = 2;

    private static final class MaxDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        max_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetMax() {
      if (max_ == null) {
        return com.google.protobuf.MapField.emptyMapField(MaxDefaultEntryHolder.defaultEntry);
      }
      return max_;
    }

    public int getMaxCount() {
      return internalGetMax().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    public boolean containsMax(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetMax().getMap().containsKey(key);
    }
    /** Use {@link #getMaxMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMax() {
      return getMaxMap();
    }
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMaxMap() {
      return internalGetMax().getMap();
    }
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMaxOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMax().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Max usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMaxOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMax().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MIN_FIELD_NUMBER = 3;

    private static final class MinDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        min_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetMin() {
      if (min_ == null) {
        return com.google.protobuf.MapField.emptyMapField(MinDefaultEntryHolder.defaultEntry);
      }
      return min_;
    }

    public int getMinCount() {
      return internalGetMin().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    public boolean containsMin(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetMin().getMap().containsKey(key);
    }
    /** Use {@link #getMinMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getMin() {
      return getMinMap();
    }
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMinMap() {
      return internalGetMin().getMap();
    }
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMinOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMin().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Min usage constraints on this kind by resource name.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMinOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMin().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int DEFAULT_FIELD_NUMBER = 4;

    private static final class DefaultDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        default_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetDefault() {
      if (default_ == null) {
        return com.google.protobuf.MapField.emptyMapField(DefaultDefaultEntryHolder.defaultEntry);
      }
      return default_;
    }

    public int getDefaultCount() {
      return internalGetDefault().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    public boolean containsDefault(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetDefault().getMap().containsKey(key);
    }
    /** Use {@link #getDefaultMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefault() {
      return getDefaultMap();
    }
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefaultMap() {
      return internalGetDefault().getMap();
    }
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getDefaultOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetDefault().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Default resource requirement limit value by resource name if resource limit is omitted.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getDefaultOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetDefault().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int DEFAULTREQUEST_FIELD_NUMBER = 5;

    private static final class DefaultRequestDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        defaultRequest_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetDefaultRequest() {
      if (defaultRequest_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            DefaultRequestDefaultEntryHolder.defaultEntry);
      }
      return defaultRequest_;
    }

    public int getDefaultRequestCount() {
      return internalGetDefaultRequest().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    public boolean containsDefaultRequest(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetDefaultRequest().getMap().containsKey(key);
    }
    /** Use {@link #getDefaultRequestMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefaultRequest() {
      return getDefaultRequestMap();
    }
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getDefaultRequestMap() {
      return internalGetDefaultRequest().getMap();
    }
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetDefaultRequest().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetDefaultRequest().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int MAXLIMITREQUESTRATIO_FIELD_NUMBER = 6;

    private static final class MaxLimitRequestRatioDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        maxLimitRequestRatio_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetMaxLimitRequestRatio() {
      if (maxLimitRequestRatio_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            MaxLimitRequestRatioDefaultEntryHolder.defaultEntry);
      }
      return maxLimitRequestRatio_;
    }

    public int getMaxLimitRequestRatioCount() {
      return internalGetMaxLimitRequestRatio().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    public boolean containsMaxLimitRequestRatio(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetMaxLimitRequestRatio().getMap().containsKey(key);
    }
    /** Use {@link #getMaxLimitRequestRatioMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMaxLimitRequestRatio() {
      return getMaxLimitRequestRatioMap();
    }
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getMaxLimitRequestRatioMap() {
      return internalGetMaxLimitRequestRatio().getMap();
    }
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMaxLimitRequestRatio().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
     * +optional
     * </pre>
     *
     * <code>
     * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetMaxLimitRequestRatio().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetMax(), MaxDefaultEntryHolder.defaultEntry, 2);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetMin(), MinDefaultEntryHolder.defaultEntry, 3);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetDefault(), DefaultDefaultEntryHolder.defaultEntry, 4);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetDefaultRequest(), DefaultRequestDefaultEntryHolder.defaultEntry, 5);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output,
          internalGetMaxLimitRequestRatio(),
          MaxLimitRequestRatioDefaultEntryHolder.defaultEntry,
          6);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetMax().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            max__ =
                MaxDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, max__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetMin().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            min__ =
                MinDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, min__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetDefault().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            default__ =
                DefaultDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, default__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetDefaultRequest().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            defaultRequest__ =
                DefaultRequestDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, defaultRequest__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetMaxLimitRequestRatio().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            maxLimitRequestRatio__ =
                MaxLimitRequestRatioDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, maxLimitRequestRatio__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LimitRangeItem)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LimitRangeItem other =
          (io.kubernetes.client.proto.V1.LimitRangeItem) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && internalGetMax().equals(other.internalGetMax());
      result = result && internalGetMin().equals(other.internalGetMin());
      result = result && internalGetDefault().equals(other.internalGetDefault());
      result = result && internalGetDefaultRequest().equals(other.internalGetDefaultRequest());
      result =
          result
              && internalGetMaxLimitRequestRatio().equals(other.internalGetMaxLimitRequestRatio());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (!internalGetMax().getMap().isEmpty()) {
        hash = (37 * hash) + MAX_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMax().hashCode();
      }
      if (!internalGetMin().getMap().isEmpty()) {
        hash = (37 * hash) + MIN_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMin().hashCode();
      }
      if (!internalGetDefault().getMap().isEmpty()) {
        hash = (37 * hash) + DEFAULT_FIELD_NUMBER;
        hash = (53 * hash) + internalGetDefault().hashCode();
      }
      if (!internalGetDefaultRequest().getMap().isEmpty()) {
        hash = (37 * hash) + DEFAULTREQUEST_FIELD_NUMBER;
        hash = (53 * hash) + internalGetDefaultRequest().hashCode();
      }
      if (!internalGetMaxLimitRequestRatio().getMap().isEmpty()) {
        hash = (37 * hash) + MAXLIMITREQUESTRATIO_FIELD_NUMBER;
        hash = (53 * hash) + internalGetMaxLimitRequestRatio().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LimitRangeItem prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LimitRangeItem defines a min/max usage limit for any resource that matches on kind.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LimitRangeItem}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LimitRangeItem)
        io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMax();
          case 3:
            return internalGetMin();
          case 4:
            return internalGetDefault();
          case 5:
            return internalGetDefaultRequest();
          case 6:
            return internalGetMaxLimitRequestRatio();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMutableMax();
          case 3:
            return internalGetMutableMin();
          case 4:
            return internalGetMutableDefault();
          case 5:
            return internalGetMutableDefaultRequest();
          case 6:
            return internalGetMutableMaxLimitRequestRatio();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LimitRangeItem_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LimitRangeItem.class,
                io.kubernetes.client.proto.V1.LimitRangeItem.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LimitRangeItem.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableMax().clear();
        internalGetMutableMin().clear();
        internalGetMutableDefault().clear();
        internalGetMutableDefaultRequest().clear();
        internalGetMutableMaxLimitRequestRatio().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeItem getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeItem.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeItem build() {
        io.kubernetes.client.proto.V1.LimitRangeItem result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeItem buildPartial() {
        io.kubernetes.client.proto.V1.LimitRangeItem result =
            new io.kubernetes.client.proto.V1.LimitRangeItem(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        result.max_ = internalGetMax();
        result.max_.makeImmutable();
        result.min_ = internalGetMin();
        result.min_.makeImmutable();
        result.default_ = internalGetDefault();
        result.default_.makeImmutable();
        result.defaultRequest_ = internalGetDefaultRequest();
        result.defaultRequest_.makeImmutable();
        result.maxLimitRequestRatio_ = internalGetMaxLimitRequestRatio();
        result.maxLimitRequestRatio_.makeImmutable();
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LimitRangeItem) {
          return mergeFrom((io.kubernetes.client.proto.V1.LimitRangeItem) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LimitRangeItem other) {
        if (other == io.kubernetes.client.proto.V1.LimitRangeItem.getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        internalGetMutableMax().mergeFrom(other.internalGetMax());
        internalGetMutableMin().mergeFrom(other.internalGetMin());
        internalGetMutableDefault().mergeFrom(other.internalGetDefault());
        internalGetMutableDefaultRequest().mergeFrom(other.internalGetDefaultRequest());
        internalGetMutableMaxLimitRequestRatio().mergeFrom(other.internalGetMaxLimitRequestRatio());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LimitRangeItem parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.LimitRangeItem) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of resource that this limit applies to.
       * +optional
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          max_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMax() {
        if (max_ == null) {
          return com.google.protobuf.MapField.emptyMapField(MaxDefaultEntryHolder.defaultEntry);
        }
        return max_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableMax() {
        onChanged();
        ;
        if (max_ == null) {
          max_ = com.google.protobuf.MapField.newMapField(MaxDefaultEntryHolder.defaultEntry);
        }
        if (!max_.isMutable()) {
          max_ = max_.copy();
        }
        return max_;
      }

      public int getMaxCount() {
        return internalGetMax().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public boolean containsMax(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetMax().getMap().containsKey(key);
      }
      /** Use {@link #getMaxMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMax() {
        return getMaxMap();
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMaxMap() {
        return internalGetMax().getMap();
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMaxOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMax().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMaxOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMax().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMax() {
        internalGetMutableMax().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public Builder removeMax(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMax().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableMax() {
        return internalGetMutableMax().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public Builder putMax(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMax().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Max usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; max = 2;
       * </code>
       */
      public Builder putAllMax(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableMax().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          min_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMin() {
        if (min_ == null) {
          return com.google.protobuf.MapField.emptyMapField(MinDefaultEntryHolder.defaultEntry);
        }
        return min_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableMin() {
        onChanged();
        ;
        if (min_ == null) {
          min_ = com.google.protobuf.MapField.newMapField(MinDefaultEntryHolder.defaultEntry);
        }
        if (!min_.isMutable()) {
          min_ = min_.copy();
        }
        return min_;
      }

      public int getMinCount() {
        return internalGetMin().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public boolean containsMin(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetMin().getMap().containsKey(key);
      }
      /** Use {@link #getMinMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMin() {
        return getMinMap();
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMinMap() {
        return internalGetMin().getMap();
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMinOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMin().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMinOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMin().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMin() {
        internalGetMutableMin().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public Builder removeMin(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMin().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableMin() {
        return internalGetMutableMin().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public Builder putMin(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMin().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Min usage constraints on this kind by resource name.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; min = 3;
       * </code>
       */
      public Builder putAllMin(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableMin().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          default_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetDefault() {
        if (default_ == null) {
          return com.google.protobuf.MapField.emptyMapField(DefaultDefaultEntryHolder.defaultEntry);
        }
        return default_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableDefault() {
        onChanged();
        ;
        if (default_ == null) {
          default_ =
              com.google.protobuf.MapField.newMapField(DefaultDefaultEntryHolder.defaultEntry);
        }
        if (!default_.isMutable()) {
          default_ = default_.copy();
        }
        return default_;
      }

      public int getDefaultCount() {
        return internalGetDefault().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public boolean containsDefault(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetDefault().getMap().containsKey(key);
      }
      /** Use {@link #getDefaultMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getDefault() {
        return getDefaultMap();
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getDefaultMap() {
        return internalGetDefault().getMap();
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getDefaultOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetDefault().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getDefaultOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetDefault().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearDefault() {
        internalGetMutableDefault().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public Builder removeDefault(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefault().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableDefault() {
        return internalGetMutableDefault().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public Builder putDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefault().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Default resource requirement limit value by resource name if resource limit is omitted.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; default = 4;
       * </code>
       */
      public Builder putAllDefault(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableDefault().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultRequest_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetDefaultRequest() {
        if (defaultRequest_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              DefaultRequestDefaultEntryHolder.defaultEntry);
        }
        return defaultRequest_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableDefaultRequest() {
        onChanged();
        ;
        if (defaultRequest_ == null) {
          defaultRequest_ =
              com.google.protobuf.MapField.newMapField(
                  DefaultRequestDefaultEntryHolder.defaultEntry);
        }
        if (!defaultRequest_.isMutable()) {
          defaultRequest_ = defaultRequest_.copy();
        }
        return defaultRequest_;
      }

      public int getDefaultRequestCount() {
        return internalGetDefaultRequest().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public boolean containsDefaultRequest(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetDefaultRequest().getMap().containsKey(key);
      }
      /** Use {@link #getDefaultRequestMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getDefaultRequest() {
        return getDefaultRequestMap();
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getDefaultRequestMap() {
        return internalGetDefaultRequest().getMap();
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetDefaultRequest().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getDefaultRequestOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetDefaultRequest().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearDefaultRequest() {
        internalGetMutableDefaultRequest().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public Builder removeDefaultRequest(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefaultRequest().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableDefaultRequest() {
        return internalGetMutableDefaultRequest().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public Builder putDefaultRequest(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableDefaultRequest().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * DefaultRequest is the default resource requirement request value by resource name if resource request is omitted.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; defaultRequest = 5;
       * </code>
       */
      public Builder putAllDefaultRequest(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableDefaultRequest().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          maxLimitRequestRatio_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMaxLimitRequestRatio() {
        if (maxLimitRequestRatio_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              MaxLimitRequestRatioDefaultEntryHolder.defaultEntry);
        }
        return maxLimitRequestRatio_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableMaxLimitRequestRatio() {
        onChanged();
        ;
        if (maxLimitRequestRatio_ == null) {
          maxLimitRequestRatio_ =
              com.google.protobuf.MapField.newMapField(
                  MaxLimitRequestRatioDefaultEntryHolder.defaultEntry);
        }
        if (!maxLimitRequestRatio_.isMutable()) {
          maxLimitRequestRatio_ = maxLimitRequestRatio_.copy();
        }
        return maxLimitRequestRatio_;
      }

      public int getMaxLimitRequestRatioCount() {
        return internalGetMaxLimitRequestRatio().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public boolean containsMaxLimitRequestRatio(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetMaxLimitRequestRatio().getMap().containsKey(key);
      }
      /** Use {@link #getMaxLimitRequestRatioMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMaxLimitRequestRatio() {
        return getMaxLimitRequestRatioMap();
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMaxLimitRequestRatioMap() {
        return internalGetMaxLimitRequestRatio().getMap();
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMaxLimitRequestRatio().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getMaxLimitRequestRatioOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetMaxLimitRequestRatio().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearMaxLimitRequestRatio() {
        internalGetMutableMaxLimitRequestRatio().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public Builder removeMaxLimitRequestRatio(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMaxLimitRequestRatio().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableMaxLimitRequestRatio() {
        return internalGetMutableMaxLimitRequestRatio().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public Builder putMaxLimitRequestRatio(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableMaxLimitRequestRatio().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * MaxLimitRequestRatio if specified, the named resource must have a request and limit that are both non-zero where limit divided by request is less than or equal to the enumerated value; this represents the max burst for the named resource.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; maxLimitRequestRatio = 6;
       * </code>
       */
      public Builder putAllMaxLimitRequestRatio(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableMaxLimitRequestRatio().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LimitRangeItem)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LimitRangeItem)
    private static final io.kubernetes.client.proto.V1.LimitRangeItem DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LimitRangeItem();
    }

    public static io.kubernetes.client.proto.V1.LimitRangeItem getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LimitRangeItem> PARSER =
        new com.google.protobuf.AbstractParser<LimitRangeItem>() {
          @java.lang.Override
          public LimitRangeItem parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LimitRangeItem(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LimitRangeItem> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LimitRangeItem> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LimitRangeItem getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LimitRangeListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LimitRangeList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.LimitRange> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    io.kubernetes.client.proto.V1.LimitRange getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    io.kubernetes.client.proto.V1.LimitRangeOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * LimitRangeList is a list of LimitRange items.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LimitRangeList}
   */
  public static final class LimitRangeList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LimitRangeList)
      LimitRangeListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LimitRangeList.newBuilder() to construct.
    private LimitRangeList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LimitRangeList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LimitRangeList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LimitRange>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LimitRange.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LimitRangeList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LimitRangeList.class,
              io.kubernetes.client.proto.V1.LimitRangeList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.LimitRange> items_;
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.LimitRange> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRange getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is a list of LimitRange objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRangeOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LimitRangeList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LimitRangeList other =
          (io.kubernetes.client.proto.V1.LimitRangeList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LimitRangeList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LimitRangeList is a list of LimitRange items.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LimitRangeList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LimitRangeList)
        io.kubernetes.client.proto.V1.LimitRangeListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LimitRangeList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LimitRangeList.class,
                io.kubernetes.client.proto.V1.LimitRangeList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LimitRangeList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeList build() {
        io.kubernetes.client.proto.V1.LimitRangeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeList buildPartial() {
        io.kubernetes.client.proto.V1.LimitRangeList result =
            new io.kubernetes.client.proto.V1.LimitRangeList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LimitRangeList) {
          return mergeFrom((io.kubernetes.client.proto.V1.LimitRangeList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LimitRangeList other) {
        if (other == io.kubernetes.client.proto.V1.LimitRangeList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LimitRangeList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.LimitRangeList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.LimitRange> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LimitRange>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRange,
              io.kubernetes.client.proto.V1.LimitRange.Builder,
              io.kubernetes.client.proto.V1.LimitRangeOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LimitRange> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRange getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.LimitRange value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.LimitRange.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.LimitRange value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.LimitRange value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.LimitRange.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.LimitRange.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.LimitRange> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRange.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRange.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.LimitRange.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRange.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.LimitRange.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of LimitRange objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRange items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LimitRange.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRange,
              io.kubernetes.client.proto.V1.LimitRange.Builder,
              io.kubernetes.client.proto.V1.LimitRangeOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LimitRange,
                  io.kubernetes.client.proto.V1.LimitRange.Builder,
                  io.kubernetes.client.proto.V1.LimitRangeOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LimitRangeList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LimitRangeList)
    private static final io.kubernetes.client.proto.V1.LimitRangeList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LimitRangeList();
    }

    public static io.kubernetes.client.proto.V1.LimitRangeList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LimitRangeList> PARSER =
        new com.google.protobuf.AbstractParser<LimitRangeList>() {
          @java.lang.Override
          public LimitRangeList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LimitRangeList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LimitRangeList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LimitRangeList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LimitRangeList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LimitRangeSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LimitRangeSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem> getLimitsList();
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    io.kubernetes.client.proto.V1.LimitRangeItem getLimits(int index);
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    int getLimitsCount();
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>
        getLimitsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder getLimitsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * LimitRangeSpec defines a min/max usage limit for resources that match on kind.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LimitRangeSpec}
   */
  public static final class LimitRangeSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LimitRangeSpec)
      LimitRangeSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LimitRangeSpec.newBuilder() to construct.
    private LimitRangeSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LimitRangeSpec() {
      limits_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LimitRangeSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  limits_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LimitRangeItem>();
                  mutable_bitField0_ |= 0x00000001;
                }
                limits_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LimitRangeItem.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          limits_ = java.util.Collections.unmodifiableList(limits_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LimitRangeSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LimitRangeSpec.class,
              io.kubernetes.client.proto.V1.LimitRangeSpec.Builder.class);
    }

    public static final int LIMITS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem> limits_;
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem> getLimitsList() {
      return limits_;
    }
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>
        getLimitsOrBuilderList() {
      return limits_;
    }
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    public int getLimitsCount() {
      return limits_.size();
    }
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRangeItem getLimits(int index) {
      return limits_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Limits is the list of LimitRangeItem objects that are enforced.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder getLimitsOrBuilder(int index) {
      return limits_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < limits_.size(); i++) {
        output.writeMessage(1, limits_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < limits_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, limits_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LimitRangeSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LimitRangeSpec other =
          (io.kubernetes.client.proto.V1.LimitRangeSpec) obj;

      boolean result = true;
      result = result && getLimitsList().equals(other.getLimitsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getLimitsCount() > 0) {
        hash = (37 * hash) + LIMITS_FIELD_NUMBER;
        hash = (53 * hash) + getLimitsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LimitRangeSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LimitRangeSpec defines a min/max usage limit for resources that match on kind.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LimitRangeSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LimitRangeSpec)
        io.kubernetes.client.proto.V1.LimitRangeSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LimitRangeSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LimitRangeSpec.class,
                io.kubernetes.client.proto.V1.LimitRangeSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LimitRangeSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLimitsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (limitsBuilder_ == null) {
          limits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          limitsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeSpec build() {
        io.kubernetes.client.proto.V1.LimitRangeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LimitRangeSpec buildPartial() {
        io.kubernetes.client.proto.V1.LimitRangeSpec result =
            new io.kubernetes.client.proto.V1.LimitRangeSpec(this);
        int from_bitField0_ = bitField0_;
        if (limitsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            limits_ = java.util.Collections.unmodifiableList(limits_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.limits_ = limits_;
        } else {
          result.limits_ = limitsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LimitRangeSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.LimitRangeSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LimitRangeSpec other) {
        if (other == io.kubernetes.client.proto.V1.LimitRangeSpec.getDefaultInstance()) return this;
        if (limitsBuilder_ == null) {
          if (!other.limits_.isEmpty()) {
            if (limits_.isEmpty()) {
              limits_ = other.limits_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureLimitsIsMutable();
              limits_.addAll(other.limits_);
            }
            onChanged();
          }
        } else {
          if (!other.limits_.isEmpty()) {
            if (limitsBuilder_.isEmpty()) {
              limitsBuilder_.dispose();
              limitsBuilder_ = null;
              limits_ = other.limits_;
              bitField0_ = (bitField0_ & ~0x00000001);
              limitsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getLimitsFieldBuilder()
                      : null;
            } else {
              limitsBuilder_.addAllMessages(other.limits_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LimitRangeSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.LimitRangeSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem> limits_ =
          java.util.Collections.emptyList();

      private void ensureLimitsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          limits_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.LimitRangeItem>(limits_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRangeItem,
              io.kubernetes.client.proto.V1.LimitRangeItem.Builder,
              io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>
          limitsBuilder_;

      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem> getLimitsList() {
        if (limitsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(limits_);
        } else {
          return limitsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public int getLimitsCount() {
        if (limitsBuilder_ == null) {
          return limits_.size();
        } else {
          return limitsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeItem getLimits(int index) {
        if (limitsBuilder_ == null) {
          return limits_.get(index);
        } else {
          return limitsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder setLimits(int index, io.kubernetes.client.proto.V1.LimitRangeItem value) {
        if (limitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLimitsIsMutable();
          limits_.set(index, value);
          onChanged();
        } else {
          limitsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder setLimits(
          int index, io.kubernetes.client.proto.V1.LimitRangeItem.Builder builderForValue) {
        if (limitsBuilder_ == null) {
          ensureLimitsIsMutable();
          limits_.set(index, builderForValue.build());
          onChanged();
        } else {
          limitsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder addLimits(io.kubernetes.client.proto.V1.LimitRangeItem value) {
        if (limitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLimitsIsMutable();
          limits_.add(value);
          onChanged();
        } else {
          limitsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder addLimits(int index, io.kubernetes.client.proto.V1.LimitRangeItem value) {
        if (limitsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureLimitsIsMutable();
          limits_.add(index, value);
          onChanged();
        } else {
          limitsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder addLimits(
          io.kubernetes.client.proto.V1.LimitRangeItem.Builder builderForValue) {
        if (limitsBuilder_ == null) {
          ensureLimitsIsMutable();
          limits_.add(builderForValue.build());
          onChanged();
        } else {
          limitsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder addLimits(
          int index, io.kubernetes.client.proto.V1.LimitRangeItem.Builder builderForValue) {
        if (limitsBuilder_ == null) {
          ensureLimitsIsMutable();
          limits_.add(index, builderForValue.build());
          onChanged();
        } else {
          limitsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder addAllLimits(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.LimitRangeItem> values) {
        if (limitsBuilder_ == null) {
          ensureLimitsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, limits_);
          onChanged();
        } else {
          limitsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder clearLimits() {
        if (limitsBuilder_ == null) {
          limits_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          limitsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public Builder removeLimits(int index) {
        if (limitsBuilder_ == null) {
          ensureLimitsIsMutable();
          limits_.remove(index);
          onChanged();
        } else {
          limitsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeItem.Builder getLimitsBuilder(int index) {
        return getLimitsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder getLimitsOrBuilder(int index) {
        if (limitsBuilder_ == null) {
          return limits_.get(index);
        } else {
          return limitsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>
          getLimitsOrBuilderList() {
        if (limitsBuilder_ != null) {
          return limitsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(limits_);
        }
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeItem.Builder addLimitsBuilder() {
        return getLimitsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.LimitRangeItem.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LimitRangeItem.Builder addLimitsBuilder(int index) {
        return getLimitsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.LimitRangeItem.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Limits is the list of LimitRangeItem objects that are enforced.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LimitRangeItem limits = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LimitRangeItem.Builder>
          getLimitsBuilderList() {
        return getLimitsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LimitRangeItem,
              io.kubernetes.client.proto.V1.LimitRangeItem.Builder,
              io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>
          getLimitsFieldBuilder() {
        if (limitsBuilder_ == null) {
          limitsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LimitRangeItem,
                  io.kubernetes.client.proto.V1.LimitRangeItem.Builder,
                  io.kubernetes.client.proto.V1.LimitRangeItemOrBuilder>(
                  limits_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          limits_ = null;
        }
        return limitsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LimitRangeSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LimitRangeSpec)
    private static final io.kubernetes.client.proto.V1.LimitRangeSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LimitRangeSpec();
    }

    public static io.kubernetes.client.proto.V1.LimitRangeSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LimitRangeSpec> PARSER =
        new com.google.protobuf.AbstractParser<LimitRangeSpec>() {
          @java.lang.Override
          public LimitRangeSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LimitRangeSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LimitRangeSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LimitRangeSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LimitRangeSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.List)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getItemsList();
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtension getItems(int index);
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * List holds a list of objects, which may not be known by the server.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.List}
   */
  public static final class List extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.List)
      ListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use List.newBuilder() to construct.
    private List(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private List() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private List(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.Runtime.RawExtension>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.Runtime.RawExtension.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_List_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_List_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.List.class,
              io.kubernetes.client.proto.V1.List.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> items_;
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtension getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of objects
     * </pre>
     *
     * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
     */
    public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.List)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.List other = (io.kubernetes.client.proto.V1.List) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.List parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.List parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.List parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.List prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * List holds a list of objects, which may not be known by the server.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.List}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.List)
        io.kubernetes.client.proto.V1.ListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_List_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_List_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.List.class,
                io.kubernetes.client.proto.V1.List.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.List.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_List_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.List getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.List.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.List build() {
        io.kubernetes.client.proto.V1.List result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.List buildPartial() {
        io.kubernetes.client.proto.V1.List result = new io.kubernetes.client.proto.V1.List(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.List) {
          return mergeFrom((io.kubernetes.client.proto.V1.List) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.List other) {
        if (other == io.kubernetes.client.proto.V1.List.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.List parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.List) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.Runtime.RawExtension>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.Runtime.RawExtension value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.Runtime.RawExtension.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.Runtime.RawExtension> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public io.kubernetes.client.proto.Runtime.RawExtension.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.Runtime.RawExtension.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of objects
       * </pre>
       *
       * <code>repeated .k8s.io.apimachinery.pkg.runtime.RawExtension items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.Runtime.RawExtension.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.Runtime.RawExtension,
              io.kubernetes.client.proto.Runtime.RawExtension.Builder,
              io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.Runtime.RawExtension,
                  io.kubernetes.client.proto.Runtime.RawExtension.Builder,
                  io.kubernetes.client.proto.Runtime.RawExtensionOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.List)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.List)
    private static final io.kubernetes.client.proto.V1.List DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.List();
    }

    public static io.kubernetes.client.proto.V1.List getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<List> PARSER =
        new com.google.protobuf.AbstractParser<List>() {
          @java.lang.Override
          public List parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new List(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<List> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<List> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.List getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LoadBalancerIngressOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LoadBalancerIngress)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    boolean hasIp();
    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    java.lang.String getIp();
    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    com.google.protobuf.ByteString getIpBytes();

    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    boolean hasHostname();
    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    java.lang.String getHostname();
    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    com.google.protobuf.ByteString getHostnameBytes();
  }
  /**
   *
   *
   * <pre>
   * LoadBalancerIngress represents the status of a load-balancer ingress point:
   * traffic intended for the service should be sent to an ingress point.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LoadBalancerIngress}
   */
  public static final class LoadBalancerIngress extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LoadBalancerIngress)
      LoadBalancerIngressOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LoadBalancerIngress.newBuilder() to construct.
    private LoadBalancerIngress(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LoadBalancerIngress() {
      ip_ = "";
      hostname_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LoadBalancerIngress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                ip_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                hostname_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LoadBalancerIngress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LoadBalancerIngress.class,
              io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder.class);
    }

    private int bitField0_;
    public static final int IP_FIELD_NUMBER = 1;
    private volatile java.lang.Object ip_;
    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public boolean hasIp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public java.lang.String getIp() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ip_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * IP is set for load-balancer ingress points that are IP based
     * (typically GCE or OpenStack load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string ip = 1;</code>
     */
    public com.google.protobuf.ByteString getIpBytes() {
      java.lang.Object ref = ip_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        ip_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTNAME_FIELD_NUMBER = 2;
    private volatile java.lang.Object hostname_;
    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Hostname is set for load-balancer ingress points that are DNS based
     * (typically AWS load-balancers)
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 2;</code>
     */
    public com.google.protobuf.ByteString getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, ip_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, hostname_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, ip_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, hostname_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LoadBalancerIngress)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LoadBalancerIngress other =
          (io.kubernetes.client.proto.V1.LoadBalancerIngress) obj;

      boolean result = true;
      result = result && (hasIp() == other.hasIp());
      if (hasIp()) {
        result = result && getIp().equals(other.getIp());
      }
      result = result && (hasHostname() == other.hasHostname());
      if (hasHostname()) {
        result = result && getHostname().equals(other.getHostname());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasIp()) {
        hash = (37 * hash) + IP_FIELD_NUMBER;
        hash = (53 * hash) + getIp().hashCode();
      }
      if (hasHostname()) {
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LoadBalancerIngress prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LoadBalancerIngress represents the status of a load-balancer ingress point:
     * traffic intended for the service should be sent to an ingress point.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LoadBalancerIngress}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LoadBalancerIngress)
        io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerIngress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LoadBalancerIngress.class,
                io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LoadBalancerIngress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        ip_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerIngress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LoadBalancerIngress.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerIngress build() {
        io.kubernetes.client.proto.V1.LoadBalancerIngress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerIngress buildPartial() {
        io.kubernetes.client.proto.V1.LoadBalancerIngress result =
            new io.kubernetes.client.proto.V1.LoadBalancerIngress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ip_ = ip_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.hostname_ = hostname_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LoadBalancerIngress) {
          return mergeFrom((io.kubernetes.client.proto.V1.LoadBalancerIngress) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LoadBalancerIngress other) {
        if (other == io.kubernetes.client.proto.V1.LoadBalancerIngress.getDefaultInstance())
          return this;
        if (other.hasIp()) {
          bitField0_ |= 0x00000001;
          ip_ = other.ip_;
          onChanged();
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00000002;
          hostname_ = other.hostname_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LoadBalancerIngress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.LoadBalancerIngress) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object ip_ = "";
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public boolean hasIp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public java.lang.String getIp() {
        java.lang.Object ref = ip_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            ip_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public com.google.protobuf.ByteString getIpBytes() {
        java.lang.Object ref = ip_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          ip_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIp(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder clearIp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ip_ = getDefaultInstance().getIp();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP is set for load-balancer ingress points that are IP based
       * (typically GCE or OpenStack load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string ip = 1;</code>
       */
      public Builder setIpBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        ip_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hostname_ = "";
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostname_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public com.google.protobuf.ByteString getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public Builder setHostname(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000002);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hostname is set for load-balancer ingress points that are DNS based
       * (typically AWS load-balancers)
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 2;</code>
       */
      public Builder setHostnameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        hostname_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LoadBalancerIngress)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LoadBalancerIngress)
    private static final io.kubernetes.client.proto.V1.LoadBalancerIngress DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LoadBalancerIngress();
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerIngress getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LoadBalancerIngress> PARSER =
        new com.google.protobuf.AbstractParser<LoadBalancerIngress>() {
          @java.lang.Override
          public LoadBalancerIngress parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LoadBalancerIngress(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LoadBalancerIngress> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoadBalancerIngress> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LoadBalancerIngress getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LoadBalancerStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LoadBalancerStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress> getIngressList();
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    io.kubernetes.client.proto.V1.LoadBalancerIngress getIngress(int index);
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    int getIngressCount();
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>
        getIngressOrBuilderList();
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder getIngressOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * LoadBalancerStatus represents the status of a load-balancer.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LoadBalancerStatus}
   */
  public static final class LoadBalancerStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LoadBalancerStatus)
      LoadBalancerStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LoadBalancerStatus.newBuilder() to construct.
    private LoadBalancerStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LoadBalancerStatus() {
      ingress_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LoadBalancerStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  ingress_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.LoadBalancerIngress>();
                  mutable_bitField0_ |= 0x00000001;
                }
                ingress_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LoadBalancerIngress.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          ingress_ = java.util.Collections.unmodifiableList(ingress_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LoadBalancerStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LoadBalancerStatus.class,
              io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder.class);
    }

    public static final int INGRESS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress> ingress_;
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress> getIngressList() {
      return ingress_;
    }
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>
        getIngressOrBuilderList() {
      return ingress_;
    }
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    public int getIngressCount() {
      return ingress_.size();
    }
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LoadBalancerIngress getIngress(int index) {
      return ingress_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Ingress is a list containing ingress points for the load-balancer.
     * Traffic intended for the service should be sent to these ingress points.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder getIngressOrBuilder(
        int index) {
      return ingress_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < ingress_.size(); i++) {
        output.writeMessage(1, ingress_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < ingress_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, ingress_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LoadBalancerStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LoadBalancerStatus other =
          (io.kubernetes.client.proto.V1.LoadBalancerStatus) obj;

      boolean result = true;
      result = result && getIngressList().equals(other.getIngressList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getIngressCount() > 0) {
        hash = (37 * hash) + INGRESS_FIELD_NUMBER;
        hash = (53 * hash) + getIngressList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LoadBalancerStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LoadBalancerStatus represents the status of a load-balancer.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LoadBalancerStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LoadBalancerStatus)
        io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LoadBalancerStatus.class,
                io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LoadBalancerStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getIngressFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (ingressBuilder_ == null) {
          ingress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ingressBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerStatus build() {
        io.kubernetes.client.proto.V1.LoadBalancerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LoadBalancerStatus buildPartial() {
        io.kubernetes.client.proto.V1.LoadBalancerStatus result =
            new io.kubernetes.client.proto.V1.LoadBalancerStatus(this);
        int from_bitField0_ = bitField0_;
        if (ingressBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            ingress_ = java.util.Collections.unmodifiableList(ingress_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.ingress_ = ingress_;
        } else {
          result.ingress_ = ingressBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LoadBalancerStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.LoadBalancerStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LoadBalancerStatus other) {
        if (other == io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance())
          return this;
        if (ingressBuilder_ == null) {
          if (!other.ingress_.isEmpty()) {
            if (ingress_.isEmpty()) {
              ingress_ = other.ingress_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureIngressIsMutable();
              ingress_.addAll(other.ingress_);
            }
            onChanged();
          }
        } else {
          if (!other.ingress_.isEmpty()) {
            if (ingressBuilder_.isEmpty()) {
              ingressBuilder_.dispose();
              ingressBuilder_ = null;
              ingress_ = other.ingress_;
              bitField0_ = (bitField0_ & ~0x00000001);
              ingressBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getIngressFieldBuilder()
                      : null;
            } else {
              ingressBuilder_.addAllMessages(other.ingress_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LoadBalancerStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.LoadBalancerStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress> ingress_ =
          java.util.Collections.emptyList();

      private void ensureIngressIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          ingress_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.LoadBalancerIngress>(ingress_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LoadBalancerIngress,
              io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder,
              io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>
          ingressBuilder_;

      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress> getIngressList() {
        if (ingressBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ingress_);
        } else {
          return ingressBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public int getIngressCount() {
        if (ingressBuilder_ == null) {
          return ingress_.size();
        } else {
          return ingressBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerIngress getIngress(int index) {
        if (ingressBuilder_ == null) {
          return ingress_.get(index);
        } else {
          return ingressBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder setIngress(
          int index, io.kubernetes.client.proto.V1.LoadBalancerIngress value) {
        if (ingressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIngressIsMutable();
          ingress_.set(index, value);
          onChanged();
        } else {
          ingressBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder setIngress(
          int index, io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder builderForValue) {
        if (ingressBuilder_ == null) {
          ensureIngressIsMutable();
          ingress_.set(index, builderForValue.build());
          onChanged();
        } else {
          ingressBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder addIngress(io.kubernetes.client.proto.V1.LoadBalancerIngress value) {
        if (ingressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIngressIsMutable();
          ingress_.add(value);
          onChanged();
        } else {
          ingressBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder addIngress(
          int index, io.kubernetes.client.proto.V1.LoadBalancerIngress value) {
        if (ingressBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureIngressIsMutable();
          ingress_.add(index, value);
          onChanged();
        } else {
          ingressBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder addIngress(
          io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder builderForValue) {
        if (ingressBuilder_ == null) {
          ensureIngressIsMutable();
          ingress_.add(builderForValue.build());
          onChanged();
        } else {
          ingressBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder addIngress(
          int index, io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder builderForValue) {
        if (ingressBuilder_ == null) {
          ensureIngressIsMutable();
          ingress_.add(index, builderForValue.build());
          onChanged();
        } else {
          ingressBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder addAllIngress(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.LoadBalancerIngress> values) {
        if (ingressBuilder_ == null) {
          ensureIngressIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, ingress_);
          onChanged();
        } else {
          ingressBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder clearIngress() {
        if (ingressBuilder_ == null) {
          ingress_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          ingressBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public Builder removeIngress(int index) {
        if (ingressBuilder_ == null) {
          ensureIngressIsMutable();
          ingress_.remove(index);
          onChanged();
        } else {
          ingressBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder getIngressBuilder(
          int index) {
        return getIngressFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder getIngressOrBuilder(
          int index) {
        if (ingressBuilder_ == null) {
          return ingress_.get(index);
        } else {
          return ingressBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>
          getIngressOrBuilderList() {
        if (ingressBuilder_ != null) {
          return ingressBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ingress_);
        }
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder addIngressBuilder() {
        return getIngressFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.LoadBalancerIngress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder addIngressBuilder(
          int index) {
        return getIngressFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.LoadBalancerIngress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Ingress is a list containing ingress points for the load-balancer.
       * Traffic intended for the service should be sent to these ingress points.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LoadBalancerIngress ingress = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder>
          getIngressBuilderList() {
        return getIngressFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LoadBalancerIngress,
              io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder,
              io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>
          getIngressFieldBuilder() {
        if (ingressBuilder_ == null) {
          ingressBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LoadBalancerIngress,
                  io.kubernetes.client.proto.V1.LoadBalancerIngress.Builder,
                  io.kubernetes.client.proto.V1.LoadBalancerIngressOrBuilder>(
                  ingress_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          ingress_ = null;
        }
        return ingressBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LoadBalancerStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LoadBalancerStatus)
    private static final io.kubernetes.client.proto.V1.LoadBalancerStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LoadBalancerStatus();
    }

    public static io.kubernetes.client.proto.V1.LoadBalancerStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LoadBalancerStatus> PARSER =
        new com.google.protobuf.AbstractParser<LoadBalancerStatus>() {
          @java.lang.Override
          public LoadBalancerStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LoadBalancerStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LoadBalancerStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LoadBalancerStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LoadBalancerStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LocalObjectReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LocalObjectReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();
  }
  /**
   *
   *
   * <pre>
   * LocalObjectReference contains enough information to let you locate the
   * referenced object inside the same namespace.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LocalObjectReference}
   */
  public static final class LocalObjectReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LocalObjectReference)
      LocalObjectReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LocalObjectReference.newBuilder() to construct.
    private LocalObjectReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LocalObjectReference() {
      name_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LocalObjectReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LocalObjectReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LocalObjectReference.class,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * TODO: Add other useful fields. apiVersion, kind, uid?
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LocalObjectReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LocalObjectReference other =
          (io.kubernetes.client.proto.V1.LocalObjectReference) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LocalObjectReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * LocalObjectReference contains enough information to let you locate the
     * referenced object inside the same namespace.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LocalObjectReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LocalObjectReference)
        io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LocalObjectReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LocalObjectReference.class,
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalObjectReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalObjectReference build() {
        io.kubernetes.client.proto.V1.LocalObjectReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalObjectReference buildPartial() {
        io.kubernetes.client.proto.V1.LocalObjectReference result =
            new io.kubernetes.client.proto.V1.LocalObjectReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LocalObjectReference) {
          return mergeFrom((io.kubernetes.client.proto.V1.LocalObjectReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LocalObjectReference other) {
        if (other == io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance())
          return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LocalObjectReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.LocalObjectReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * TODO: Add other useful fields. apiVersion, kind, uid?
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LocalObjectReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LocalObjectReference)
    private static final io.kubernetes.client.proto.V1.LocalObjectReference DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LocalObjectReference();
    }

    public static io.kubernetes.client.proto.V1.LocalObjectReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LocalObjectReference> PARSER =
        new com.google.protobuf.AbstractParser<LocalObjectReference>() {
          @java.lang.Override
          public LocalObjectReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LocalObjectReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LocalObjectReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LocalObjectReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LocalObjectReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface LocalVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.LocalVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();
  }
  /**
   *
   *
   * <pre>
   * Local represents directly-attached storage with node affinity (Beta feature)
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.LocalVolumeSource}
   */
  public static final class LocalVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.LocalVolumeSource)
      LocalVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use LocalVolumeSource.newBuilder() to construct.
    private LocalVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private LocalVolumeSource() {
      path_ = "";
      fsType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private LocalVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_LocalVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.LocalVolumeSource.class,
              io.kubernetes.client.proto.V1.LocalVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The full path to the volume on the node.
     * It can be either a directory or block device (disk, partition, ...).
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * It applies only when the Path is a block device.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.LocalVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.LocalVolumeSource other =
          (io.kubernetes.client.proto.V1.LocalVolumeSource) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.LocalVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity (Beta feature)
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.LocalVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.LocalVolumeSource)
        io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_LocalVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.LocalVolumeSource.class,
                io.kubernetes.client.proto.V1.LocalVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.LocalVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalVolumeSource build() {
        io.kubernetes.client.proto.V1.LocalVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.LocalVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.LocalVolumeSource result =
            new io.kubernetes.client.proto.V1.LocalVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.LocalVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.LocalVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.LocalVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.LocalVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.LocalVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The full path to the volume on the node.
       * It can be either a directory or block device (disk, partition, ...).
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * It applies only when the Path is a block device.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". The default value is to auto-select a fileystem if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.LocalVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.LocalVolumeSource)
    private static final io.kubernetes.client.proto.V1.LocalVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.LocalVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.LocalVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<LocalVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<LocalVolumeSource>() {
          @java.lang.Override
          public LocalVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new LocalVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<LocalVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<LocalVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.LocalVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NFSVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NFSVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    boolean hasServer();
    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    java.lang.String getServer();
    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    com.google.protobuf.ByteString getServerBytes();

    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    com.google.protobuf.ByteString getPathBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force
     * the NFS export to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force
     * the NFS export to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents an NFS mount that lasts the lifetime of a pod.
   * NFS volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NFSVolumeSource}
   */
  public static final class NFSVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NFSVolumeSource)
      NFSVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NFSVolumeSource.newBuilder() to construct.
    private NFSVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NFSVolumeSource() {
      server_ = "";
      path_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NFSVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                server_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                path_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NFSVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NFSVolumeSource.class,
              io.kubernetes.client.proto.V1.NFSVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int SERVER_FIELD_NUMBER = 1;
    private volatile java.lang.Object server_;
    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    public boolean hasServer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    public java.lang.String getServer() {
      java.lang.Object ref = server_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          server_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Server is the hostname or IP address of the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string server = 1;</code>
     */
    public com.google.protobuf.ByteString getServerBytes() {
      java.lang.Object ref = server_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        server_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path that is exported by the NFS server.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * </pre>
     *
     * <code>optional string path = 2;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force
     * the NFS export to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force
     * the NFS export to be mounted with read-only permissions.
     * Defaults to false.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, server_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, server_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NFSVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NFSVolumeSource other =
          (io.kubernetes.client.proto.V1.NFSVolumeSource) obj;

      boolean result = true;
      result = result && (hasServer() == other.hasServer());
      if (hasServer()) {
        result = result && getServer().equals(other.getServer());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasServer()) {
        hash = (37 * hash) + SERVER_FIELD_NUMBER;
        hash = (53 * hash) + getServer().hashCode();
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NFSVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents an NFS mount that lasts the lifetime of a pod.
     * NFS volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NFSVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NFSVolumeSource)
        io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NFSVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NFSVolumeSource.class,
                io.kubernetes.client.proto.V1.NFSVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NFSVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        server_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NFSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NFSVolumeSource build() {
        io.kubernetes.client.proto.V1.NFSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NFSVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.NFSVolumeSource result =
            new io.kubernetes.client.proto.V1.NFSVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.server_ = server_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.path_ = path_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NFSVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.NFSVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NFSVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance())
          return this;
        if (other.hasServer()) {
          bitField0_ |= 0x00000001;
          server_ = other.server_;
          onChanged();
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000002;
          path_ = other.path_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NFSVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NFSVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object server_ = "";
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public boolean hasServer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public java.lang.String getServer() {
        java.lang.Object ref = server_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            server_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public com.google.protobuf.ByteString getServerBytes() {
        java.lang.Object ref = server_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          server_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public Builder setServer(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        server_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public Builder clearServer() {
        bitField0_ = (bitField0_ & ~0x00000001);
        server_ = getDefaultInstance().getServer();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Server is the hostname or IP address of the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string server = 1;</code>
       */
      public Builder setServerBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        server_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path that is exported by the NFS server.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * </pre>
       *
       * <code>optional string path = 2;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        path_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force
       * the NFS export to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force
       * the NFS export to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force
       * the NFS export to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force
       * the NFS export to be mounted with read-only permissions.
       * Defaults to false.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NFSVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NFSVolumeSource)
    private static final io.kubernetes.client.proto.V1.NFSVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NFSVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.NFSVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NFSVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<NFSVolumeSource>() {
          @java.lang.Override
          public NFSVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NFSVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NFSVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NFSVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NFSVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NamespaceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Namespace)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.NamespaceSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.NamespaceStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Namespace provides a scope for Names.
   * Use of multiple namespaces is optional.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Namespace}
   */
  public static final class Namespace extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Namespace)
      NamespaceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Namespace.newBuilder() to construct.
    private Namespace(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Namespace() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Namespace(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.NamespaceSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NamespaceSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.NamespaceStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NamespaceStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Namespace_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Namespace_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Namespace.class,
              io.kubernetes.client.proto.V1.Namespace.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.NamespaceSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NamespaceSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of the Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.NamespaceStatus status_;
    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NamespaceStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status describes the current status of a Namespace.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Namespace)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Namespace other = (io.kubernetes.client.proto.V1.Namespace) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Namespace parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Namespace prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Namespace provides a scope for Names.
     * Use of multiple namespaces is optional.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Namespace}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Namespace)
        io.kubernetes.client.proto.V1.NamespaceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Namespace_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Namespace_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Namespace.class,
                io.kubernetes.client.proto.V1.Namespace.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Namespace.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Namespace_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Namespace getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Namespace.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Namespace build() {
        io.kubernetes.client.proto.V1.Namespace result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Namespace buildPartial() {
        io.kubernetes.client.proto.V1.Namespace result =
            new io.kubernetes.client.proto.V1.Namespace(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Namespace) {
          return mergeFrom((io.kubernetes.client.proto.V1.Namespace) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Namespace other) {
        if (other == io.kubernetes.client.proto.V1.Namespace.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Namespace parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Namespace) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.NamespaceSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NamespaceSpec,
              io.kubernetes.client.proto.V1.NamespaceSpec.Builder,
              io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.NamespaceSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.NamespaceSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.NamespaceSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.NamespaceSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of the Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NamespaceSpec,
              io.kubernetes.client.proto.V1.NamespaceSpec.Builder,
              io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NamespaceSpec,
                  io.kubernetes.client.proto.V1.NamespaceSpec.Builder,
                  io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.NamespaceStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NamespaceStatus,
              io.kubernetes.client.proto.V1.NamespaceStatus.Builder,
              io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.NamespaceStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.NamespaceStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.NamespaceStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_ != io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.NamespaceStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status describes the current status of a Namespace.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NamespaceStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NamespaceStatus,
              io.kubernetes.client.proto.V1.NamespaceStatus.Builder,
              io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NamespaceStatus,
                  io.kubernetes.client.proto.V1.NamespaceStatus.Builder,
                  io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Namespace)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Namespace)
    private static final io.kubernetes.client.proto.V1.Namespace DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Namespace();
    }

    public static io.kubernetes.client.proto.V1.Namespace getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Namespace> PARSER =
        new com.google.protobuf.AbstractParser<Namespace>() {
          @java.lang.Override
          public Namespace parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Namespace(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Namespace> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Namespace> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Namespace getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NamespaceListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NamespaceList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Namespace> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Namespace getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NamespaceOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    io.kubernetes.client.proto.V1.NamespaceOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * NamespaceList is a list of Namespaces.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NamespaceList}
   */
  public static final class NamespaceList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NamespaceList)
      NamespaceListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NamespaceList.newBuilder() to construct.
    private NamespaceList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NamespaceList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NamespaceList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Namespace>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Namespace.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NamespaceList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NamespaceList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NamespaceList.class,
              io.kubernetes.client.proto.V1.NamespaceList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Namespace> items_;
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Namespace> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NamespaceOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Namespace getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is the list of Namespace objects in the list.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NamespaceOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NamespaceList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NamespaceList other =
          (io.kubernetes.client.proto.V1.NamespaceList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NamespaceList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NamespaceList is a list of Namespaces.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NamespaceList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NamespaceList)
        io.kubernetes.client.proto.V1.NamespaceListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NamespaceList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NamespaceList.class,
                io.kubernetes.client.proto.V1.NamespaceList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NamespaceList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceList build() {
        io.kubernetes.client.proto.V1.NamespaceList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceList buildPartial() {
        io.kubernetes.client.proto.V1.NamespaceList result =
            new io.kubernetes.client.proto.V1.NamespaceList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NamespaceList) {
          return mergeFrom((io.kubernetes.client.proto.V1.NamespaceList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NamespaceList other) {
        if (other == io.kubernetes.client.proto.V1.NamespaceList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NamespaceList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NamespaceList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Namespace> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Namespace>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Namespace,
              io.kubernetes.client.proto.V1.Namespace.Builder,
              io.kubernetes.client.proto.V1.NamespaceOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Namespace> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Namespace getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Namespace value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Namespace.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Namespace value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Namespace value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Namespace.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Namespace.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Namespace> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Namespace.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NamespaceOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.NamespaceOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Namespace.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Namespace.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Namespace.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Namespace.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is the list of Namespace objects in the list.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Namespace items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Namespace.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Namespace,
              io.kubernetes.client.proto.V1.Namespace.Builder,
              io.kubernetes.client.proto.V1.NamespaceOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Namespace,
                  io.kubernetes.client.proto.V1.Namespace.Builder,
                  io.kubernetes.client.proto.V1.NamespaceOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NamespaceList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NamespaceList)
    private static final io.kubernetes.client.proto.V1.NamespaceList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NamespaceList();
    }

    public static io.kubernetes.client.proto.V1.NamespaceList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NamespaceList> PARSER =
        new com.google.protobuf.AbstractParser<NamespaceList>() {
          @java.lang.Override
          public NamespaceList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NamespaceList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NamespaceList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NamespaceList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NamespaceList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NamespaceSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NamespaceSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    java.util.List<java.lang.String> getFinalizersList();
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    int getFinalizersCount();
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    java.lang.String getFinalizers(int index);
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    com.google.protobuf.ByteString getFinalizersBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * NamespaceSpec describes the attributes on a Namespace.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NamespaceSpec}
   */
  public static final class NamespaceSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NamespaceSpec)
      NamespaceSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NamespaceSpec.newBuilder() to construct.
    private NamespaceSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NamespaceSpec() {
      finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NamespaceSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  finalizers_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                finalizers_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          finalizers_ = finalizers_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NamespaceSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NamespaceSpec.class,
              io.kubernetes.client.proto.V1.NamespaceSpec.Builder.class);
    }

    public static final int FINALIZERS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList finalizers_;
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getFinalizersList() {
      return finalizers_;
    }
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    public int getFinalizersCount() {
      return finalizers_.size();
    }
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    public java.lang.String getFinalizers(int index) {
      return finalizers_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>repeated string finalizers = 1;</code>
     */
    public com.google.protobuf.ByteString getFinalizersBytes(int index) {
      return finalizers_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < finalizers_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, finalizers_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < finalizers_.size(); i++) {
          dataSize += computeStringSizeNoTag(finalizers_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getFinalizersList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NamespaceSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NamespaceSpec other =
          (io.kubernetes.client.proto.V1.NamespaceSpec) obj;

      boolean result = true;
      result = result && getFinalizersList().equals(other.getFinalizersList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getFinalizersCount() > 0) {
        hash = (37 * hash) + FINALIZERS_FIELD_NUMBER;
        hash = (53 * hash) + getFinalizersList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NamespaceSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NamespaceSpec describes the attributes on a Namespace.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NamespaceSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NamespaceSpec)
        io.kubernetes.client.proto.V1.NamespaceSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NamespaceSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NamespaceSpec.class,
                io.kubernetes.client.proto.V1.NamespaceSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NamespaceSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceSpec build() {
        io.kubernetes.client.proto.V1.NamespaceSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceSpec buildPartial() {
        io.kubernetes.client.proto.V1.NamespaceSpec result =
            new io.kubernetes.client.proto.V1.NamespaceSpec(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          finalizers_ = finalizers_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.finalizers_ = finalizers_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NamespaceSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.NamespaceSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NamespaceSpec other) {
        if (other == io.kubernetes.client.proto.V1.NamespaceSpec.getDefaultInstance()) return this;
        if (!other.finalizers_.isEmpty()) {
          if (finalizers_.isEmpty()) {
            finalizers_ = other.finalizers_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureFinalizersIsMutable();
            finalizers_.addAll(other.finalizers_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NamespaceSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NamespaceSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList finalizers_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureFinalizersIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          finalizers_ = new com.google.protobuf.LazyStringArrayList(finalizers_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getFinalizersList() {
        return finalizers_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public int getFinalizersCount() {
        return finalizers_.size();
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public java.lang.String getFinalizers(int index) {
        return finalizers_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public com.google.protobuf.ByteString getFinalizersBytes(int index) {
        return finalizers_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public Builder setFinalizers(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFinalizersIsMutable();
        finalizers_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public Builder addFinalizers(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFinalizersIsMutable();
        finalizers_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public Builder addAllFinalizers(java.lang.Iterable<java.lang.String> values) {
        ensureFinalizersIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, finalizers_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public Builder clearFinalizers() {
        finalizers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Finalizers is an opaque list of values that must be empty to permanently remove object from storage.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>repeated string finalizers = 1;</code>
       */
      public Builder addFinalizersBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureFinalizersIsMutable();
        finalizers_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NamespaceSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NamespaceSpec)
    private static final io.kubernetes.client.proto.V1.NamespaceSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NamespaceSpec();
    }

    public static io.kubernetes.client.proto.V1.NamespaceSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NamespaceSpec> PARSER =
        new com.google.protobuf.AbstractParser<NamespaceSpec>() {
          @java.lang.Override
          public NamespaceSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NamespaceSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NamespaceSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NamespaceSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NamespaceSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NamespaceStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NamespaceStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    boolean hasPhase();
    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    java.lang.String getPhase();
    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    com.google.protobuf.ByteString getPhaseBytes();
  }
  /**
   *
   *
   * <pre>
   * NamespaceStatus is information about the current status of a Namespace.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NamespaceStatus}
   */
  public static final class NamespaceStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NamespaceStatus)
      NamespaceStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NamespaceStatus.newBuilder() to construct.
    private NamespaceStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NamespaceStatus() {
      phase_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NamespaceStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                phase_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NamespaceStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NamespaceStatus.class,
              io.kubernetes.client.proto.V1.NamespaceStatus.Builder.class);
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private volatile java.lang.Object phase_;
    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public java.lang.String getPhase() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          phase_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Phase is the current lifecycle phase of the namespace.
     * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public com.google.protobuf.ByteString getPhaseBytes() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        phase_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phase_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, phase_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NamespaceStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NamespaceStatus other =
          (io.kubernetes.client.proto.V1.NamespaceStatus) obj;

      boolean result = true;
      result = result && (hasPhase() == other.hasPhase());
      if (hasPhase()) {
        result = result && getPhase().equals(other.getPhase());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPhase()) {
        hash = (37 * hash) + PHASE_FIELD_NUMBER;
        hash = (53 * hash) + getPhase().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NamespaceStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NamespaceStatus is information about the current status of a Namespace.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NamespaceStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NamespaceStatus)
        io.kubernetes.client.proto.V1.NamespaceStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NamespaceStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NamespaceStatus.class,
                io.kubernetes.client.proto.V1.NamespaceStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NamespaceStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceStatus build() {
        io.kubernetes.client.proto.V1.NamespaceStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NamespaceStatus buildPartial() {
        io.kubernetes.client.proto.V1.NamespaceStatus result =
            new io.kubernetes.client.proto.V1.NamespaceStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NamespaceStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.NamespaceStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NamespaceStatus other) {
        if (other == io.kubernetes.client.proto.V1.NamespaceStatus.getDefaultInstance())
          return this;
        if (other.hasPhase()) {
          bitField0_ |= 0x00000001;
          phase_ = other.phase_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NamespaceStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NamespaceStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object phase_ = "";
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public java.lang.String getPhase() {
        java.lang.Object ref = phase_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phase_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public com.google.protobuf.ByteString getPhaseBytes() {
        java.lang.Object ref = phase_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          phase_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhase(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = getDefaultInstance().getPhase();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase is the current lifecycle phase of the namespace.
       * More info: https://kubernetes.io/docs/tasks/administer-cluster/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhaseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NamespaceStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NamespaceStatus)
    private static final io.kubernetes.client.proto.V1.NamespaceStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NamespaceStatus();
    }

    public static io.kubernetes.client.proto.V1.NamespaceStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NamespaceStatus> PARSER =
        new com.google.protobuf.AbstractParser<NamespaceStatus>() {
          @java.lang.Override
          public NamespaceStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NamespaceStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NamespaceStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NamespaceStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NamespaceStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Node)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.NodeStatus getStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.NodeStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Node is a worker node in Kubernetes.
   * Each node will have a unique identifier in the cache (i.e. in etcd).
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Node}
   */
  public static final class Node extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Node)
      NodeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Node.newBuilder() to construct.
    private Node(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Node() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Node(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.NodeSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.NodeStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Node_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Node_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Node.class,
              io.kubernetes.client.proto.V1.Node.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.NodeSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSpec getSpec() {
      return spec_ == null ? io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance() : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a node.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null ? io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance() : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.NodeStatus status_;
    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NodeStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the node.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NodeStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Node)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Node other = (io.kubernetes.client.proto.V1.Node) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Node parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Node parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Node parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Node prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Node is a worker node in Kubernetes.
     * Each node will have a unique identifier in the cache (i.e. in etcd).
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Node}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Node)
        io.kubernetes.client.proto.V1.NodeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Node_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Node_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Node.class,
                io.kubernetes.client.proto.V1.Node.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Node.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Node_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Node getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Node.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Node build() {
        io.kubernetes.client.proto.V1.Node result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Node buildPartial() {
        io.kubernetes.client.proto.V1.Node result = new io.kubernetes.client.proto.V1.Node(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Node) {
          return mergeFrom((io.kubernetes.client.proto.V1.Node) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Node other) {
        if (other == io.kubernetes.client.proto.V1.Node.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Node parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Node) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSpec,
              io.kubernetes.client.proto.V1.NodeSpec.Builder,
              io.kubernetes.client.proto.V1.NodeSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.NodeSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.NodeSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.NodeSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.NodeSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a node.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSpec,
              io.kubernetes.client.proto.V1.NodeSpec.Builder,
              io.kubernetes.client.proto.V1.NodeSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSpec,
                  io.kubernetes.client.proto.V1.NodeSpec.Builder,
                  io.kubernetes.client.proto.V1.NodeSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeStatus,
              io.kubernetes.client.proto.V1.NodeStatus.Builder,
              io.kubernetes.client.proto.V1.NodeStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.NodeStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.NodeStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.NodeStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_ != io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.NodeStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the node.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeStatus,
              io.kubernetes.client.proto.V1.NodeStatus.Builder,
              io.kubernetes.client.proto.V1.NodeStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeStatus,
                  io.kubernetes.client.proto.V1.NodeStatus.Builder,
                  io.kubernetes.client.proto.V1.NodeStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Node)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Node)
    private static final io.kubernetes.client.proto.V1.Node DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Node();
    }

    public static io.kubernetes.client.proto.V1.Node getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Node> PARSER =
        new com.google.protobuf.AbstractParser<Node>() {
          @java.lang.Override
          public Node parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Node(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Node> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Node> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Node getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeAddressOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeAddress)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    boolean hasAddress();
    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    java.lang.String getAddress();
    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    com.google.protobuf.ByteString getAddressBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeAddress contains information for the node's address.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeAddress}
   */
  public static final class NodeAddress extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeAddress)
      NodeAddressOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeAddress.newBuilder() to construct.
    private NodeAddress(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeAddress() {
      type_ = "";
      address_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeAddress(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                address_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeAddress_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeAddress_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeAddress.class,
              io.kubernetes.client.proto.V1.NodeAddress.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Node address type, one of Hostname, ExternalIP or InternalIP.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ADDRESS_FIELD_NUMBER = 2;
    private volatile java.lang.Object address_;
    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    public java.lang.String getAddress() {
      java.lang.Object ref = address_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          address_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The node address.
     * </pre>
     *
     * <code>optional string address = 2;</code>
     */
    public com.google.protobuf.ByteString getAddressBytes() {
      java.lang.Object ref = address_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        address_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, address_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, address_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeAddress)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeAddress other =
          (io.kubernetes.client.proto.V1.NodeAddress) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasAddress() == other.hasAddress());
      if (hasAddress()) {
        result = result && getAddress().equals(other.getAddress());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasAddress()) {
        hash = (37 * hash) + ADDRESS_FIELD_NUMBER;
        hash = (53 * hash) + getAddress().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAddress parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeAddress prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeAddress contains information for the node's address.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeAddress}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeAddress)
        io.kubernetes.client.proto.V1.NodeAddressOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeAddress_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeAddress_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeAddress.class,
                io.kubernetes.client.proto.V1.NodeAddress.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeAddress.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        address_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeAddress_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAddress getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeAddress.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAddress build() {
        io.kubernetes.client.proto.V1.NodeAddress result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAddress buildPartial() {
        io.kubernetes.client.proto.V1.NodeAddress result =
            new io.kubernetes.client.proto.V1.NodeAddress(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.address_ = address_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeAddress) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeAddress) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeAddress other) {
        if (other == io.kubernetes.client.proto.V1.NodeAddress.getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasAddress()) {
          bitField0_ |= 0x00000002;
          address_ = other.address_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeAddress parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeAddress) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Node address type, one of Hostname, ExternalIP or InternalIP.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object address_ = "";
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public java.lang.String getAddress() {
        java.lang.Object ref = address_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            address_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public com.google.protobuf.ByteString getAddressBytes() {
        java.lang.Object ref = address_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          address_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public Builder setAddress(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        address_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public Builder clearAddress() {
        bitField0_ = (bitField0_ & ~0x00000002);
        address_ = getDefaultInstance().getAddress();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The node address.
       * </pre>
       *
       * <code>optional string address = 2;</code>
       */
      public Builder setAddressBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        address_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeAddress)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeAddress)
    private static final io.kubernetes.client.proto.V1.NodeAddress DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeAddress();
    }

    public static io.kubernetes.client.proto.V1.NodeAddress getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeAddress> PARSER =
        new com.google.protobuf.AbstractParser<NodeAddress>() {
          @java.lang.Override
          public NodeAddress parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeAddress(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeAddress> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeAddress> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeAddress getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeAffinityOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeAffinity)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    boolean hasRequiredDuringSchedulingIgnoredDuringExecution();
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.NodeSelector getRequiredDuringSchedulingIgnoredDuringExecution();
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder();

    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.PreferredSchedulingTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index);
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    int getPreferredDuringSchedulingIgnoredDuringExecutionCount();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Node affinity is a group of node affinity scheduling rules.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeAffinity}
   */
  public static final class NodeAffinity extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeAffinity)
      NodeAffinityOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeAffinity.newBuilder() to construct.
    private NodeAffinity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeAffinity() {
      preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeAffinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.NodeSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = requiredDuringSchedulingIgnoredDuringExecution_.toBuilder();
                }
                requiredDuringSchedulingIgnoredDuringExecution_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(requiredDuringSchedulingIgnoredDuringExecution_);
                  requiredDuringSchedulingIgnoredDuringExecution_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  preferredDuringSchedulingIgnoredDuringExecution_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.PreferredSchedulingTerm>();
                  mutable_bitField0_ |= 0x00000002;
                }
                preferredDuringSchedulingIgnoredDuringExecution_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PreferredSchedulingTerm.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              java.util.Collections.unmodifiableList(
                  preferredDuringSchedulingIgnoredDuringExecution_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeAffinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeAffinity.class,
              io.kubernetes.client.proto.V1.NodeAffinity.Builder.class);
    }

    private int bitField0_;
    public static final int REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.NodeSelector
        requiredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public boolean hasRequiredDuringSchedulingIgnoredDuringExecution() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.NodeSelector
        getRequiredDuringSchedulingIgnoredDuringExecution() {
      return requiredDuringSchedulingIgnoredDuringExecution_ == null
          ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
          : requiredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to an update), the system
     * may or may not try to eventually evict the pod from its node.
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder() {
      return requiredDuringSchedulingIgnoredDuringExecution_ == null
          ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
          : requiredDuringSchedulingIgnoredDuringExecution_;
    }

    public static final int PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
        preferredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
      return preferredDuringSchedulingIgnoredDuringExecution_.size();
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PreferredSchedulingTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node matches the corresponding matchExpressions; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getRequiredDuringSchedulingIgnoredDuringExecution());
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        output.writeMessage(2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                1, getRequiredDuringSchedulingIgnoredDuringExecution());
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeAffinity)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeAffinity other =
          (io.kubernetes.client.proto.V1.NodeAffinity) obj;

      boolean result = true;
      result =
          result
              && (hasRequiredDuringSchedulingIgnoredDuringExecution()
                  == other.hasRequiredDuringSchedulingIgnoredDuringExecution());
      if (hasRequiredDuringSchedulingIgnoredDuringExecution()) {
        result =
            result
                && getRequiredDuringSchedulingIgnoredDuringExecution()
                    .equals(other.getRequiredDuringSchedulingIgnoredDuringExecution());
      }
      result =
          result
              && getPreferredDuringSchedulingIgnoredDuringExecutionList()
                  .equals(other.getPreferredDuringSchedulingIgnoredDuringExecutionList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequiredDuringSchedulingIgnoredDuringExecution()) {
        hash = (37 * hash) + REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getRequiredDuringSchedulingIgnoredDuringExecution().hashCode();
      }
      if (getPreferredDuringSchedulingIgnoredDuringExecutionCount() > 0) {
        hash = (37 * hash) + PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getPreferredDuringSchedulingIgnoredDuringExecutionList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeAffinity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Node affinity is a group of node affinity scheduling rules.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeAffinity}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeAffinity)
        io.kubernetes.client.proto.V1.NodeAffinityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeAffinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeAffinity.class,
                io.kubernetes.client.proto.V1.NodeAffinity.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeAffinity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAffinity build() {
        io.kubernetes.client.proto.V1.NodeAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeAffinity buildPartial() {
        io.kubernetes.client.proto.V1.NodeAffinity result =
            new io.kubernetes.client.proto.V1.NodeAffinity(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            preferredDuringSchedulingIgnoredDuringExecution_ =
                java.util.Collections.unmodifiableList(
                    preferredDuringSchedulingIgnoredDuringExecution_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeAffinity) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeAffinity) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeAffinity other) {
        if (other == io.kubernetes.client.proto.V1.NodeAffinity.getDefaultInstance()) return this;
        if (other.hasRequiredDuringSchedulingIgnoredDuringExecution()) {
          mergeRequiredDuringSchedulingIgnoredDuringExecution(
              other.getRequiredDuringSchedulingIgnoredDuringExecution());
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
              preferredDuringSchedulingIgnoredDuringExecution_.addAll(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
            onChanged();
          }
        } else {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.dispose();
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ = null;
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
                      : null;
            } else {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeAffinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeAffinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.NodeSelector
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelector,
              io.kubernetes.client.proto.V1.NodeSelector.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_;
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public boolean hasRequiredDuringSchedulingIgnoredDuringExecution() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelector
          getRequiredDuringSchedulingIgnoredDuringExecution() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_ == null
              ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
              : requiredDuringSchedulingIgnoredDuringExecution_;
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.NodeSelector value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          requiredDuringSchedulingIgnoredDuringExecution_ = value;
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.NodeSelector.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = builderForValue.build();
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder mergeRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.NodeSelector value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && requiredDuringSchedulingIgnoredDuringExecution_ != null
              && requiredDuringSchedulingIgnoredDuringExecution_
                  != io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()) {
            requiredDuringSchedulingIgnoredDuringExecution_ =
                io.kubernetes.client.proto.V1.NodeSelector.newBuilder(
                        requiredDuringSchedulingIgnoredDuringExecution_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            requiredDuringSchedulingIgnoredDuringExecution_ = value;
          }
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder clearRequiredDuringSchedulingIgnoredDuringExecution() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelector.Builder
          getRequiredDuringSchedulingIgnoredDuringExecutionBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorOrBuilder
          getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder();
        } else {
          return requiredDuringSchedulingIgnoredDuringExecution_ == null
              ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
              : requiredDuringSchedulingIgnoredDuringExecution_;
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to an update), the system
       * may or may not try to eventually evict the pod from its node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.NodeSelector requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelector,
              io.kubernetes.client.proto.V1.NodeSelector.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelector,
                  io.kubernetes.client.proto.V1.NodeSelector.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>(
                  getRequiredDuringSchedulingIgnoredDuringExecution(),
                  getParentForChildren(),
                  isClean());
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return requiredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();

      private void ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>(
                  preferredDuringSchedulingIgnoredDuringExecution_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm,
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder,
              io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_;

      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
          getPreferredDuringSchedulingIgnoredDuringExecutionList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.size();
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm
          getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PreferredSchedulingTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PreferredSchedulingTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PreferredSchedulingTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addAllPreferredDuringSchedulingIgnoredDuringExecution(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PreferredSchedulingTerm>
              values) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, preferredDuringSchedulingIgnoredDuringExecution_);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder clearPreferredDuringSchedulingIgnoredDuringExecution() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder removePreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.remove(index);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PreferredSchedulingTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.PreferredSchedulingTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node matches the corresponding matchExpressions; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PreferredSchedulingTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder>
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilderList() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm,
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder,
              io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PreferredSchedulingTerm,
                  io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder,
                  io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder>(
                  preferredDuringSchedulingIgnoredDuringExecution_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          preferredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return preferredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeAffinity)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeAffinity)
    private static final io.kubernetes.client.proto.V1.NodeAffinity DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeAffinity();
    }

    public static io.kubernetes.client.proto.V1.NodeAffinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeAffinity> PARSER =
        new com.google.protobuf.AbstractParser<NodeAffinity>() {
          @java.lang.Override
          public NodeAffinity parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeAffinity(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeAffinity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeAffinity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeAffinity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    boolean hasLastHeartbeatTime();
    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastHeartbeatTime();
    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastHeartbeatTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    boolean hasLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeCondition contains condition information for a node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeCondition}
   */
  public static final class NodeCondition extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeCondition)
      NodeConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeCondition.newBuilder() to construct.
    private NodeCondition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeCondition() {
      type_ = "";
      status_ = "";
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastHeartbeatTime_.toBuilder();
                }
                lastHeartbeatTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastHeartbeatTime_);
                  lastHeartbeatTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = lastTransitionTime_.toBuilder();
                }
                lastTransitionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTransitionTime_);
                  lastTransitionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                reason_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeCondition.class,
              io.kubernetes.client.proto.V1.NodeCondition.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type of node condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTHEARTBEATTIME_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Time lastHeartbeatTime_;
    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    public boolean hasLastHeartbeatTime() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastHeartbeatTime() {
      return lastHeartbeatTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastHeartbeatTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time we got an update on a given condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastHeartbeatTimeOrBuilder() {
      return lastHeartbeatTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastHeartbeatTime_;
    }

    public static final int LASTTRANSITIONTIME_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.Time lastTransitionTime_;
    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public boolean hasLastTransitionTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transit from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 5;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * (brief) reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 6;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Human readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastHeartbeatTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastHeartbeatTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeCondition)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeCondition other =
          (io.kubernetes.client.proto.V1.NodeCondition) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasLastHeartbeatTime() == other.hasLastHeartbeatTime());
      if (hasLastHeartbeatTime()) {
        result = result && getLastHeartbeatTime().equals(other.getLastHeartbeatTime());
      }
      result = result && (hasLastTransitionTime() == other.hasLastTransitionTime());
      if (hasLastTransitionTime()) {
        result = result && getLastTransitionTime().equals(other.getLastTransitionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasLastHeartbeatTime()) {
        hash = (37 * hash) + LASTHEARTBEATTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastHeartbeatTime().hashCode();
      }
      if (hasLastTransitionTime()) {
        hash = (37 * hash) + LASTTRANSITIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeCondition contains condition information for a node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeCondition)
        io.kubernetes.client.proto.V1.NodeConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeCondition.class,
                io.kubernetes.client.proto.V1.NodeCondition.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLastHeartbeatTimeFieldBuilder();
          getLastTransitionTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastHeartbeatTimeBuilder_ == null) {
          lastHeartbeatTime_ = null;
        } else {
          lastHeartbeatTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeCondition_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeCondition.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeCondition build() {
        io.kubernetes.client.proto.V1.NodeCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeCondition buildPartial() {
        io.kubernetes.client.proto.V1.NodeCondition result =
            new io.kubernetes.client.proto.V1.NodeCondition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastHeartbeatTimeBuilder_ == null) {
          result.lastHeartbeatTime_ = lastHeartbeatTime_;
        } else {
          result.lastHeartbeatTime_ = lastHeartbeatTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (lastTransitionTimeBuilder_ == null) {
          result.lastTransitionTime_ = lastTransitionTime_;
        } else {
          result.lastTransitionTime_ = lastTransitionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeCondition) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeCondition) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeCondition other) {
        if (other == io.kubernetes.client.proto.V1.NodeCondition.getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasLastHeartbeatTime()) {
          mergeLastHeartbeatTime(other.getLastHeartbeatTime());
        }
        if (other.hasLastTransitionTime()) {
          mergeLastTransitionTime(other.getLastTransitionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000010;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000020;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeCondition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of node condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time lastHeartbeatTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastHeartbeatTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public boolean hasLastHeartbeatTime() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastHeartbeatTime() {
        if (lastHeartbeatTimeBuilder_ == null) {
          return lastHeartbeatTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastHeartbeatTime_;
        } else {
          return lastHeartbeatTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public Builder setLastHeartbeatTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastHeartbeatTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastHeartbeatTime_ = value;
          onChanged();
        } else {
          lastHeartbeatTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public Builder setLastHeartbeatTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastHeartbeatTimeBuilder_ == null) {
          lastHeartbeatTime_ = builderForValue.build();
          onChanged();
        } else {
          lastHeartbeatTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public Builder mergeLastHeartbeatTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastHeartbeatTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastHeartbeatTime_ != null
              && lastHeartbeatTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastHeartbeatTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastHeartbeatTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastHeartbeatTime_ = value;
          }
          onChanged();
        } else {
          lastHeartbeatTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public Builder clearLastHeartbeatTime() {
        if (lastHeartbeatTimeBuilder_ == null) {
          lastHeartbeatTime_ = null;
          onChanged();
        } else {
          lastHeartbeatTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastHeartbeatTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastHeartbeatTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastHeartbeatTimeOrBuilder() {
        if (lastHeartbeatTimeBuilder_ != null) {
          return lastHeartbeatTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastHeartbeatTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastHeartbeatTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we got an update on a given condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastHeartbeatTime = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastHeartbeatTimeFieldBuilder() {
        if (lastHeartbeatTimeBuilder_ == null) {
          lastHeartbeatTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastHeartbeatTime(), getParentForChildren(), isClean());
          lastHeartbeatTime_ = null;
        }
        return lastHeartbeatTimeBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time lastTransitionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTransitionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public boolean hasLastTransitionTime() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        } else {
          return lastTransitionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTime_ = value;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = builderForValue.build();
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder mergeLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && lastTransitionTime_ != null
              && lastTransitionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTransitionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTransitionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTransitionTime_ = value;
          }
          onChanged();
        } else {
          lastTransitionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder clearLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTransitionTimeBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLastTransitionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
        if (lastTransitionTimeBuilder_ != null) {
          return lastTransitionTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transit from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTransitionTimeFieldBuilder() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTransitionTime(), getParentForChildren(), isClean());
          lastTransitionTime_ = null;
        }
        return lastTransitionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeCondition)
    private static final io.kubernetes.client.proto.V1.NodeCondition DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeCondition();
    }

    public static io.kubernetes.client.proto.V1.NodeCondition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeCondition> PARSER =
        new com.google.protobuf.AbstractParser<NodeCondition>() {
          @java.lang.Override
          public NodeCondition parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeCondition(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeCondition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeConfigSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeConfigSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    boolean hasConfigMap();
    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getConfigMap();
    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder getConfigMapOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeConfigSource}
   */
  public static final class NodeConfigSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeConfigSource)
      NodeConfigSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeConfigSource.newBuilder() to construct.
    private NodeConfigSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeConfigSource() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeConfigSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 18:
              {
                io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = configMap_.toBuilder();
                }
                configMap_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configMap_);
                  configMap_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeConfigSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeConfigSource.class,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder.class);
    }

    private int bitField0_;
    public static final int CONFIGMAP_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource configMap_;
    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    public boolean hasConfigMap() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getConfigMap() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance()
          : configMap_;
    }
    /**
     *
     *
     * <pre>
     * ConfigMap is a reference to a Node's ConfigMap
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder
        getConfigMapOrBuilder() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance()
          : configMap_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, getConfigMap());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getConfigMap());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeConfigSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeConfigSource other =
          (io.kubernetes.client.proto.V1.NodeConfigSource) obj;

      boolean result = true;
      result = result && (hasConfigMap() == other.hasConfigMap());
      if (hasConfigMap()) {
        result = result && getConfigMap().equals(other.getConfigMap());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasConfigMap()) {
        hash = (37 * hash) + CONFIGMAP_FIELD_NUMBER;
        hash = (53 * hash) + getConfigMap().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeConfigSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeConfigSource specifies a source of node configuration. Exactly one subfield (excluding metadata) must be non-nil.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeConfigSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeConfigSource)
        io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeConfigSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeConfigSource.class,
                io.kubernetes.client.proto.V1.NodeConfigSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeConfigSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConfigMapFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (configMapBuilder_ == null) {
          configMap_ = null;
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigSource build() {
        io.kubernetes.client.proto.V1.NodeConfigSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigSource buildPartial() {
        io.kubernetes.client.proto.V1.NodeConfigSource result =
            new io.kubernetes.client.proto.V1.NodeConfigSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (configMapBuilder_ == null) {
          result.configMap_ = configMap_;
        } else {
          result.configMap_ = configMapBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeConfigSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeConfigSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeConfigSource other) {
        if (other == io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance())
          return this;
        if (other.hasConfigMap()) {
          mergeConfigMap(other.getConfigMap());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeConfigSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeConfigSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource configMap_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource,
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder>
          configMapBuilder_;
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public boolean hasConfigMap() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource getConfigMap() {
        if (configMapBuilder_ == null) {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance()
              : configMap_;
        } else {
          return configMapBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public Builder setConfigMap(io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource value) {
        if (configMapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configMap_ = value;
          onChanged();
        } else {
          configMapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public Builder setConfigMap(
          io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder builderForValue) {
        if (configMapBuilder_ == null) {
          configMap_ = builderForValue.build();
          onChanged();
        } else {
          configMapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public Builder mergeConfigMap(io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource value) {
        if (configMapBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && configMap_ != null
              && configMap_
                  != io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance()) {
            configMap_ =
                io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.newBuilder(configMap_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configMap_ = value;
          }
          onChanged();
        } else {
          configMapBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public Builder clearConfigMap() {
        if (configMapBuilder_ == null) {
          configMap_ = null;
          onChanged();
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder getConfigMapBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getConfigMapFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder
          getConfigMapOrBuilder() {
        if (configMapBuilder_ != null) {
          return configMapBuilder_.getMessageOrBuilder();
        } else {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.getDefaultInstance()
              : configMap_;
        }
      }
      /**
       *
       *
       * <pre>
       * ConfigMap is a reference to a Node's ConfigMap
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapNodeConfigSource configMap = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource,
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder>
          getConfigMapFieldBuilder() {
        if (configMapBuilder_ == null) {
          configMapBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource,
                  io.kubernetes.client.proto.V1.ConfigMapNodeConfigSource.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapNodeConfigSourceOrBuilder>(
                  getConfigMap(), getParentForChildren(), isClean());
          configMap_ = null;
        }
        return configMapBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeConfigSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeConfigSource)
    private static final io.kubernetes.client.proto.V1.NodeConfigSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeConfigSource();
    }

    public static io.kubernetes.client.proto.V1.NodeConfigSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeConfigSource> PARSER =
        new com.google.protobuf.AbstractParser<NodeConfigSource>() {
          @java.lang.Override
          public NodeConfigSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeConfigSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeConfigSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeConfigSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeConfigSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeConfigStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeConfigStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    boolean hasAssigned();
    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSource getAssigned();
    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getAssignedOrBuilder();

    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    boolean hasActive();
    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSource getActive();
    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getActiveOrBuilder();

    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    boolean hasLastKnownGood();
    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSource getLastKnownGood();
    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getLastKnownGoodOrBuilder();

    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    boolean hasError();
    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    java.lang.String getError();
    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    com.google.protobuf.ByteString getErrorBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeConfigStatus}
   */
  public static final class NodeConfigStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeConfigStatus)
      NodeConfigStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeConfigStatus.newBuilder() to construct.
    private NodeConfigStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeConfigStatus() {
      error_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeConfigStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.NodeConfigSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = assigned_.toBuilder();
                }
                assigned_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeConfigSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(assigned_);
                  assigned_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.NodeConfigSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = active_.toBuilder();
                }
                active_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeConfigSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(active_);
                  active_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.NodeConfigSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastKnownGood_.toBuilder();
                }
                lastKnownGood_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeConfigSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastKnownGood_);
                  lastKnownGood_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                error_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeConfigStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeConfigStatus.class,
              io.kubernetes.client.proto.V1.NodeConfigStatus.Builder.class);
    }

    private int bitField0_;
    public static final int ASSIGNED_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.NodeConfigSource assigned_;
    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    public boolean hasAssigned() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSource getAssigned() {
      return assigned_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : assigned_;
    }
    /**
     *
     *
     * <pre>
     * Assigned reports the checkpointed config the node will try to use.
     * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
     * config payload to local disk, along with a record indicating intended
     * config. The node refers to this record to choose its config checkpoint, and
     * reports this record in Assigned. Assigned only updates in the status after
     * the record has been checkpointed to disk. When the Kubelet is restarted,
     * it tries to make the Assigned config the Active config by loading and
     * validating the checkpointed payload identified by Assigned.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getAssignedOrBuilder() {
      return assigned_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : assigned_;
    }

    public static final int ACTIVE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.NodeConfigSource active_;
    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    public boolean hasActive() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSource getActive() {
      return active_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : active_;
    }
    /**
     *
     *
     * <pre>
     * Active reports the checkpointed config the node is actively using.
     * Active will represent either the current version of the Assigned config,
     * or the current LastKnownGood config, depending on whether attempting to use the
     * Assigned config results in an error.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getActiveOrBuilder() {
      return active_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : active_;
    }

    public static final int LASTKNOWNGOOD_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.NodeConfigSource lastKnownGood_;
    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    public boolean hasLastKnownGood() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSource getLastKnownGood() {
      return lastKnownGood_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : lastKnownGood_;
    }
    /**
     *
     *
     * <pre>
     * LastKnownGood reports the checkpointed config the node will fall back to
     * when it encounters an error attempting to use the Assigned config.
     * The Assigned config becomes the LastKnownGood config when the node determines
     * that the Assigned config is stable and correct.
     * This is currently implemented as a 10-minute soak period starting when the local
     * record of Assigned config is updated. If the Assigned config is Active at the end
     * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
     * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
     * because the local default config is always assumed good.
     * You should not make assumptions about the node's method of determining config stability
     * and correctness, as this may change or become configurable in the future.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getLastKnownGoodOrBuilder() {
      return lastKnownGood_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : lastKnownGood_;
    }

    public static final int ERROR_FIELD_NUMBER = 4;
    private volatile java.lang.Object error_;
    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public boolean hasError() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public java.lang.String getError() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          error_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
     * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
     * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
     * to load or validate the Assigned config, etc.
     * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
     * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
     * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
     * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
     * by fixing the config assigned in Spec.ConfigSource.
     * You can find additional information for debugging by searching the error message in the Kubelet log.
     * Error is a human-readable description of the error state; machines can check whether or not Error
     * is empty, but should not rely on the stability of the Error text across Kubelet versions.
     * +optional
     * </pre>
     *
     * <code>optional string error = 4;</code>
     */
    public com.google.protobuf.ByteString getErrorBytes() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        error_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getAssigned());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getActive());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastKnownGood());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, error_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getAssigned());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getActive());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastKnownGood());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, error_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeConfigStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeConfigStatus other =
          (io.kubernetes.client.proto.V1.NodeConfigStatus) obj;

      boolean result = true;
      result = result && (hasAssigned() == other.hasAssigned());
      if (hasAssigned()) {
        result = result && getAssigned().equals(other.getAssigned());
      }
      result = result && (hasActive() == other.hasActive());
      if (hasActive()) {
        result = result && getActive().equals(other.getActive());
      }
      result = result && (hasLastKnownGood() == other.hasLastKnownGood());
      if (hasLastKnownGood()) {
        result = result && getLastKnownGood().equals(other.getLastKnownGood());
      }
      result = result && (hasError() == other.hasError());
      if (hasError()) {
        result = result && getError().equals(other.getError());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAssigned()) {
        hash = (37 * hash) + ASSIGNED_FIELD_NUMBER;
        hash = (53 * hash) + getAssigned().hashCode();
      }
      if (hasActive()) {
        hash = (37 * hash) + ACTIVE_FIELD_NUMBER;
        hash = (53 * hash) + getActive().hashCode();
      }
      if (hasLastKnownGood()) {
        hash = (37 * hash) + LASTKNOWNGOOD_FIELD_NUMBER;
        hash = (53 * hash) + getLastKnownGood().hashCode();
      }
      if (hasError()) {
        hash = (37 * hash) + ERROR_FIELD_NUMBER;
        hash = (53 * hash) + getError().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeConfigStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeConfigStatus describes the status of the config assigned by Node.Spec.ConfigSource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeConfigStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeConfigStatus)
        io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeConfigStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeConfigStatus.class,
                io.kubernetes.client.proto.V1.NodeConfigStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeConfigStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getAssignedFieldBuilder();
          getActiveFieldBuilder();
          getLastKnownGoodFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (assignedBuilder_ == null) {
          assigned_ = null;
        } else {
          assignedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (activeBuilder_ == null) {
          active_ = null;
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastKnownGoodBuilder_ == null) {
          lastKnownGood_ = null;
        } else {
          lastKnownGoodBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        error_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigStatus build() {
        io.kubernetes.client.proto.V1.NodeConfigStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeConfigStatus buildPartial() {
        io.kubernetes.client.proto.V1.NodeConfigStatus result =
            new io.kubernetes.client.proto.V1.NodeConfigStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (assignedBuilder_ == null) {
          result.assigned_ = assigned_;
        } else {
          result.assigned_ = assignedBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (activeBuilder_ == null) {
          result.active_ = active_;
        } else {
          result.active_ = activeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastKnownGoodBuilder_ == null) {
          result.lastKnownGood_ = lastKnownGood_;
        } else {
          result.lastKnownGood_ = lastKnownGoodBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.error_ = error_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeConfigStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeConfigStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeConfigStatus other) {
        if (other == io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance())
          return this;
        if (other.hasAssigned()) {
          mergeAssigned(other.getAssigned());
        }
        if (other.hasActive()) {
          mergeActive(other.getActive());
        }
        if (other.hasLastKnownGood()) {
          mergeLastKnownGood(other.getLastKnownGood());
        }
        if (other.hasError()) {
          bitField0_ |= 0x00000008;
          error_ = other.error_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeConfigStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeConfigStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.NodeConfigSource assigned_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          assignedBuilder_;
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public boolean hasAssigned() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource getAssigned() {
        if (assignedBuilder_ == null) {
          return assigned_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : assigned_;
        } else {
          return assignedBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public Builder setAssigned(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (assignedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          assigned_ = value;
          onChanged();
        } else {
          assignedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public Builder setAssigned(
          io.kubernetes.client.proto.V1.NodeConfigSource.Builder builderForValue) {
        if (assignedBuilder_ == null) {
          assigned_ = builderForValue.build();
          onChanged();
        } else {
          assignedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public Builder mergeAssigned(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (assignedBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && assigned_ != null
              && assigned_ != io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()) {
            assigned_ =
                io.kubernetes.client.proto.V1.NodeConfigSource.newBuilder(assigned_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            assigned_ = value;
          }
          onChanged();
        } else {
          assignedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public Builder clearAssigned() {
        if (assignedBuilder_ == null) {
          assigned_ = null;
          onChanged();
        } else {
          assignedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource.Builder getAssignedBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getAssignedFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getAssignedOrBuilder() {
        if (assignedBuilder_ != null) {
          return assignedBuilder_.getMessageOrBuilder();
        } else {
          return assigned_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : assigned_;
        }
      }
      /**
       *
       *
       * <pre>
       * Assigned reports the checkpointed config the node will try to use.
       * When Node.Spec.ConfigSource is updated, the node checkpoints the associated
       * config payload to local disk, along with a record indicating intended
       * config. The node refers to this record to choose its config checkpoint, and
       * reports this record in Assigned. Assigned only updates in the status after
       * the record has been checkpointed to disk. When the Kubelet is restarted,
       * it tries to make the Assigned config the Active config by loading and
       * validating the checkpointed payload identified by Assigned.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource assigned = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          getAssignedFieldBuilder() {
        if (assignedBuilder_ == null) {
          assignedBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeConfigSource,
                  io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
                  io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>(
                  getAssigned(), getParentForChildren(), isClean());
          assigned_ = null;
        }
        return assignedBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeConfigSource active_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          activeBuilder_;
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public boolean hasActive() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource getActive() {
        if (activeBuilder_ == null) {
          return active_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : active_;
        } else {
          return activeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public Builder setActive(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (activeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          active_ = value;
          onChanged();
        } else {
          activeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public Builder setActive(
          io.kubernetes.client.proto.V1.NodeConfigSource.Builder builderForValue) {
        if (activeBuilder_ == null) {
          active_ = builderForValue.build();
          onChanged();
        } else {
          activeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public Builder mergeActive(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (activeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && active_ != null
              && active_ != io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()) {
            active_ =
                io.kubernetes.client.proto.V1.NodeConfigSource.newBuilder(active_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            active_ = value;
          }
          onChanged();
        } else {
          activeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public Builder clearActive() {
        if (activeBuilder_ == null) {
          active_ = null;
          onChanged();
        } else {
          activeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource.Builder getActiveBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getActiveFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getActiveOrBuilder() {
        if (activeBuilder_ != null) {
          return activeBuilder_.getMessageOrBuilder();
        } else {
          return active_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : active_;
        }
      }
      /**
       *
       *
       * <pre>
       * Active reports the checkpointed config the node is actively using.
       * Active will represent either the current version of the Assigned config,
       * or the current LastKnownGood config, depending on whether attempting to use the
       * Assigned config results in an error.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource active = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          getActiveFieldBuilder() {
        if (activeBuilder_ == null) {
          activeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeConfigSource,
                  io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
                  io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>(
                  getActive(), getParentForChildren(), isClean());
          active_ = null;
        }
        return activeBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeConfigSource lastKnownGood_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          lastKnownGoodBuilder_;
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public boolean hasLastKnownGood() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource getLastKnownGood() {
        if (lastKnownGoodBuilder_ == null) {
          return lastKnownGood_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : lastKnownGood_;
        } else {
          return lastKnownGoodBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public Builder setLastKnownGood(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (lastKnownGoodBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastKnownGood_ = value;
          onChanged();
        } else {
          lastKnownGoodBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public Builder setLastKnownGood(
          io.kubernetes.client.proto.V1.NodeConfigSource.Builder builderForValue) {
        if (lastKnownGoodBuilder_ == null) {
          lastKnownGood_ = builderForValue.build();
          onChanged();
        } else {
          lastKnownGoodBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public Builder mergeLastKnownGood(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (lastKnownGoodBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastKnownGood_ != null
              && lastKnownGood_
                  != io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()) {
            lastKnownGood_ =
                io.kubernetes.client.proto.V1.NodeConfigSource.newBuilder(lastKnownGood_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastKnownGood_ = value;
          }
          onChanged();
        } else {
          lastKnownGoodBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public Builder clearLastKnownGood() {
        if (lastKnownGoodBuilder_ == null) {
          lastKnownGood_ = null;
          onChanged();
        } else {
          lastKnownGoodBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource.Builder getLastKnownGoodBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastKnownGoodFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getLastKnownGoodOrBuilder() {
        if (lastKnownGoodBuilder_ != null) {
          return lastKnownGoodBuilder_.getMessageOrBuilder();
        } else {
          return lastKnownGood_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : lastKnownGood_;
        }
      }
      /**
       *
       *
       * <pre>
       * LastKnownGood reports the checkpointed config the node will fall back to
       * when it encounters an error attempting to use the Assigned config.
       * The Assigned config becomes the LastKnownGood config when the node determines
       * that the Assigned config is stable and correct.
       * This is currently implemented as a 10-minute soak period starting when the local
       * record of Assigned config is updated. If the Assigned config is Active at the end
       * of this period, it becomes the LastKnownGood. Note that if Spec.ConfigSource is
       * reset to nil (use local defaults), the LastKnownGood is also immediately reset to nil,
       * because the local default config is always assumed good.
       * You should not make assumptions about the node's method of determining config stability
       * and correctness, as this may change or become configurable in the future.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource lastKnownGood = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          getLastKnownGoodFieldBuilder() {
        if (lastKnownGoodBuilder_ == null) {
          lastKnownGoodBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeConfigSource,
                  io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
                  io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>(
                  getLastKnownGood(), getParentForChildren(), isClean());
          lastKnownGood_ = null;
        }
        return lastKnownGoodBuilder_;
      }

      private java.lang.Object error_ = "";
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public java.lang.String getError() {
        java.lang.Object ref = error_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            error_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public com.google.protobuf.ByteString getErrorBytes() {
        java.lang.Object ref = error_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          error_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder setError(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        error_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder clearError() {
        bitField0_ = (bitField0_ & ~0x00000008);
        error_ = getDefaultInstance().getError();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Error describes any problems reconciling the Spec.ConfigSource to the Active config.
       * Errors may occur, for example, attempting to checkpoint Spec.ConfigSource to the local Assigned
       * record, attempting to checkpoint the payload associated with Spec.ConfigSource, attempting
       * to load or validate the Assigned config, etc.
       * Errors may occur at different points while syncing config. Earlier errors (e.g. download or
       * checkpointing errors) will not result in a rollback to LastKnownGood, and may resolve across
       * Kubelet retries. Later errors (e.g. loading or validating a checkpointed config) will result in
       * a rollback to LastKnownGood. In the latter case, it is usually possible to resolve the error
       * by fixing the config assigned in Spec.ConfigSource.
       * You can find additional information for debugging by searching the error message in the Kubelet log.
       * Error is a human-readable description of the error state; machines can check whether or not Error
       * is empty, but should not rely on the stability of the Error text across Kubelet versions.
       * +optional
       * </pre>
       *
       * <code>optional string error = 4;</code>
       */
      public Builder setErrorBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        error_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeConfigStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeConfigStatus)
    private static final io.kubernetes.client.proto.V1.NodeConfigStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeConfigStatus();
    }

    public static io.kubernetes.client.proto.V1.NodeConfigStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeConfigStatus> PARSER =
        new com.google.protobuf.AbstractParser<NodeConfigStatus>() {
          @java.lang.Override
          public NodeConfigStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeConfigStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeConfigStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeConfigStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeConfigStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeDaemonEndpointsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeDaemonEndpoints)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    boolean hasKubeletEndpoint();
    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    io.kubernetes.client.proto.V1.DaemonEndpoint getKubeletEndpoint();
    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder getKubeletEndpointOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * NodeDaemonEndpoints lists ports opened by daemons running on the Node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeDaemonEndpoints}
   */
  public static final class NodeDaemonEndpoints extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeDaemonEndpoints)
      NodeDaemonEndpointsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeDaemonEndpoints.newBuilder() to construct.
    private NodeDaemonEndpoints(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeDaemonEndpoints() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeDaemonEndpoints(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.DaemonEndpoint.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = kubeletEndpoint_.toBuilder();
                }
                kubeletEndpoint_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.DaemonEndpoint.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(kubeletEndpoint_);
                  kubeletEndpoint_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints.class,
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder.class);
    }

    private int bitField0_;
    public static final int KUBELETENDPOINT_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.DaemonEndpoint kubeletEndpoint_;
    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    public boolean hasKubeletEndpoint() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DaemonEndpoint getKubeletEndpoint() {
      return kubeletEndpoint_ == null
          ? io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()
          : kubeletEndpoint_;
    }
    /**
     *
     *
     * <pre>
     * Endpoint on which Kubelet is listening.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
     */
    public io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder getKubeletEndpointOrBuilder() {
      return kubeletEndpoint_ == null
          ? io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()
          : kubeletEndpoint_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getKubeletEndpoint());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getKubeletEndpoint());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeDaemonEndpoints)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeDaemonEndpoints other =
          (io.kubernetes.client.proto.V1.NodeDaemonEndpoints) obj;

      boolean result = true;
      result = result && (hasKubeletEndpoint() == other.hasKubeletEndpoint());
      if (hasKubeletEndpoint()) {
        result = result && getKubeletEndpoint().equals(other.getKubeletEndpoint());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKubeletEndpoint()) {
        hash = (37 * hash) + KUBELETENDPOINT_FIELD_NUMBER;
        hash = (53 * hash) + getKubeletEndpoint().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeDaemonEndpoints prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeDaemonEndpoints lists ports opened by daemons running on the Node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeDaemonEndpoints}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeDaemonEndpoints)
        io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeDaemonEndpoints.class,
                io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeDaemonEndpoints.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getKubeletEndpointFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (kubeletEndpointBuilder_ == null) {
          kubeletEndpoint_ = null;
        } else {
          kubeletEndpointBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints build() {
        io.kubernetes.client.proto.V1.NodeDaemonEndpoints result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints buildPartial() {
        io.kubernetes.client.proto.V1.NodeDaemonEndpoints result =
            new io.kubernetes.client.proto.V1.NodeDaemonEndpoints(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (kubeletEndpointBuilder_ == null) {
          result.kubeletEndpoint_ = kubeletEndpoint_;
        } else {
          result.kubeletEndpoint_ = kubeletEndpointBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeDaemonEndpoints) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeDaemonEndpoints) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeDaemonEndpoints other) {
        if (other == io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance())
          return this;
        if (other.hasKubeletEndpoint()) {
          mergeKubeletEndpoint(other.getKubeletEndpoint());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeDaemonEndpoints parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.NodeDaemonEndpoints) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.DaemonEndpoint kubeletEndpoint_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DaemonEndpoint,
              io.kubernetes.client.proto.V1.DaemonEndpoint.Builder,
              io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder>
          kubeletEndpointBuilder_;
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public boolean hasKubeletEndpoint() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DaemonEndpoint getKubeletEndpoint() {
        if (kubeletEndpointBuilder_ == null) {
          return kubeletEndpoint_ == null
              ? io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()
              : kubeletEndpoint_;
        } else {
          return kubeletEndpointBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public Builder setKubeletEndpoint(io.kubernetes.client.proto.V1.DaemonEndpoint value) {
        if (kubeletEndpointBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          kubeletEndpoint_ = value;
          onChanged();
        } else {
          kubeletEndpointBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public Builder setKubeletEndpoint(
          io.kubernetes.client.proto.V1.DaemonEndpoint.Builder builderForValue) {
        if (kubeletEndpointBuilder_ == null) {
          kubeletEndpoint_ = builderForValue.build();
          onChanged();
        } else {
          kubeletEndpointBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public Builder mergeKubeletEndpoint(io.kubernetes.client.proto.V1.DaemonEndpoint value) {
        if (kubeletEndpointBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && kubeletEndpoint_ != null
              && kubeletEndpoint_
                  != io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()) {
            kubeletEndpoint_ =
                io.kubernetes.client.proto.V1.DaemonEndpoint.newBuilder(kubeletEndpoint_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            kubeletEndpoint_ = value;
          }
          onChanged();
        } else {
          kubeletEndpointBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public Builder clearKubeletEndpoint() {
        if (kubeletEndpointBuilder_ == null) {
          kubeletEndpoint_ = null;
          onChanged();
        } else {
          kubeletEndpointBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DaemonEndpoint.Builder getKubeletEndpointBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getKubeletEndpointFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      public io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder getKubeletEndpointOrBuilder() {
        if (kubeletEndpointBuilder_ != null) {
          return kubeletEndpointBuilder_.getMessageOrBuilder();
        } else {
          return kubeletEndpoint_ == null
              ? io.kubernetes.client.proto.V1.DaemonEndpoint.getDefaultInstance()
              : kubeletEndpoint_;
        }
      }
      /**
       *
       *
       * <pre>
       * Endpoint on which Kubelet is listening.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DaemonEndpoint kubeletEndpoint = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DaemonEndpoint,
              io.kubernetes.client.proto.V1.DaemonEndpoint.Builder,
              io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder>
          getKubeletEndpointFieldBuilder() {
        if (kubeletEndpointBuilder_ == null) {
          kubeletEndpointBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.DaemonEndpoint,
                  io.kubernetes.client.proto.V1.DaemonEndpoint.Builder,
                  io.kubernetes.client.proto.V1.DaemonEndpointOrBuilder>(
                  getKubeletEndpoint(), getParentForChildren(), isClean());
          kubeletEndpoint_ = null;
        }
        return kubeletEndpointBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeDaemonEndpoints)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeDaemonEndpoints)
    private static final io.kubernetes.client.proto.V1.NodeDaemonEndpoints DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeDaemonEndpoints();
    }

    public static io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeDaemonEndpoints> PARSER =
        new com.google.protobuf.AbstractParser<NodeDaemonEndpoints>() {
          @java.lang.Override
          public NodeDaemonEndpoints parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeDaemonEndpoints(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeDaemonEndpoints> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeDaemonEndpoints> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Node> getItemsList();
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Node getItems(int index);
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeOrBuilder> getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * NodeList is the whole list of all Nodes which have been registered with master.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeList}
   */
  public static final class NodeList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeList)
      NodeListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeList.newBuilder() to construct.
    private NodeList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Node>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Node.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeList.class,
              io.kubernetes.client.proto.V1.NodeList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Node> items_;
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Node> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Node getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of nodes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeList other = (io.kubernetes.client.proto.V1.NodeList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeList is the whole list of all Nodes which have been registered with master.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeList)
        io.kubernetes.client.proto.V1.NodeListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeList.class,
                io.kubernetes.client.proto.V1.NodeList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeList build() {
        io.kubernetes.client.proto.V1.NodeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeList buildPartial() {
        io.kubernetes.client.proto.V1.NodeList result =
            new io.kubernetes.client.proto.V1.NodeList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeList) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeList other) {
        if (other == io.kubernetes.client.proto.V1.NodeList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Node> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Node>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Node,
              io.kubernetes.client.proto.V1.Node.Builder,
              io.kubernetes.client.proto.V1.NodeOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Node> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Node getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Node value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Node.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Node value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Node value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Node.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Node.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Node> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Node.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.NodeOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Node.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Node.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Node.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Node.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of nodes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Node items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Node.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Node,
              io.kubernetes.client.proto.V1.Node.Builder,
              io.kubernetes.client.proto.V1.NodeOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Node,
                  io.kubernetes.client.proto.V1.Node.Builder,
                  io.kubernetes.client.proto.V1.NodeOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeList)
    private static final io.kubernetes.client.proto.V1.NodeList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeList();
    }

    public static io.kubernetes.client.proto.V1.NodeList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeList> PARSER =
        new com.google.protobuf.AbstractParser<NodeList>() {
          @java.lang.Override
          public NodeList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeProxyOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeProxyOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeProxyOptions is the query options to a Node's proxy call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeProxyOptions}
   */
  public static final class NodeProxyOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeProxyOptions)
      NodeProxyOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeProxyOptions.newBuilder() to construct.
    private NodeProxyOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeProxyOptions() {
      path_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeProxyOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeProxyOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeProxyOptions.class,
              io.kubernetes.client.proto.V1.NodeProxyOptions.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to node.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeProxyOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeProxyOptions other =
          (io.kubernetes.client.proto.V1.NodeProxyOptions) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeProxyOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeProxyOptions is the query options to a Node's proxy call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeProxyOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeProxyOptions)
        io.kubernetes.client.proto.V1.NodeProxyOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeProxyOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeProxyOptions.class,
                io.kubernetes.client.proto.V1.NodeProxyOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeProxyOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeProxyOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeProxyOptions build() {
        io.kubernetes.client.proto.V1.NodeProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeProxyOptions buildPartial() {
        io.kubernetes.client.proto.V1.NodeProxyOptions result =
            new io.kubernetes.client.proto.V1.NodeProxyOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeProxyOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeProxyOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeProxyOptions other) {
        if (other == io.kubernetes.client.proto.V1.NodeProxyOptions.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeProxyOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeProxyOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to node.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeProxyOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeProxyOptions)
    private static final io.kubernetes.client.proto.V1.NodeProxyOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeProxyOptions();
    }

    public static io.kubernetes.client.proto.V1.NodeProxyOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeProxyOptions> PARSER =
        new com.google.protobuf.AbstractParser<NodeProxyOptions>() {
          @java.lang.Override
          public NodeProxyOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeProxyOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeProxyOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeProxyOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeProxyOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeResourcesOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeResources)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    int getCapacityCount();
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    boolean containsCapacity(java.lang.String key);
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacity();
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacityMap();
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * NodeResources is an object for conveying resource information about a node.
   * see http://releases.k8s.io/HEAD/docs/design/resources.md for more details.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeResources}
   */
  public static final class NodeResources extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeResources)
      NodeResourcesOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeResources.newBuilder() to construct.
    private NodeResources(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeResources() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeResources(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  capacity_ =
                      com.google.protobuf.MapField.newMapField(
                          CapacityDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    capacity__ =
                        input.readMessage(
                            CapacityDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                capacity_.getMutableMap().put(capacity__.getKey(), capacity__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeResources_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetCapacity();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeResources_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeResources.class,
              io.kubernetes.client.proto.V1.NodeResources.Builder.class);
    }

    public static final int CAPACITY_FIELD_NUMBER = 1;

    private static final class CapacityDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        capacity_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetCapacity() {
      if (capacity_ == null) {
        return com.google.protobuf.MapField.emptyMapField(CapacityDefaultEntryHolder.defaultEntry);
      }
      return capacity_;
    }

    public int getCapacityCount() {
      return internalGetCapacity().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public boolean containsCapacity(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetCapacity().getMap().containsKey(key);
    }
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacity() {
      return getCapacityMap();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacityMap() {
      return internalGetCapacity().getMap();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the available resources of a node
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetCapacity(), CapacityDefaultEntryHolder.defaultEntry, 1);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetCapacity().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            capacity__ =
                CapacityDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, capacity__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeResources)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeResources other =
          (io.kubernetes.client.proto.V1.NodeResources) obj;

      boolean result = true;
      result = result && internalGetCapacity().equals(other.internalGetCapacity());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetCapacity().getMap().isEmpty()) {
        hash = (37 * hash) + CAPACITY_FIELD_NUMBER;
        hash = (53 * hash) + internalGetCapacity().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeResources parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeResources prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeResources is an object for conveying resource information about a node.
     * see http://releases.k8s.io/HEAD/docs/design/resources.md for more details.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeResources}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeResources)
        io.kubernetes.client.proto.V1.NodeResourcesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeResources_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeResources_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeResources.class,
                io.kubernetes.client.proto.V1.NodeResources.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeResources.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableCapacity().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeResources_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeResources getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeResources.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeResources build() {
        io.kubernetes.client.proto.V1.NodeResources result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeResources buildPartial() {
        io.kubernetes.client.proto.V1.NodeResources result =
            new io.kubernetes.client.proto.V1.NodeResources(this);
        int from_bitField0_ = bitField0_;
        result.capacity_ = internalGetCapacity();
        result.capacity_.makeImmutable();
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeResources) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeResources) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeResources other) {
        if (other == io.kubernetes.client.proto.V1.NodeResources.getDefaultInstance()) return this;
        internalGetMutableCapacity().mergeFrom(other.internalGetCapacity());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeResources parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeResources) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          capacity_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetCapacity() {
        if (capacity_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              CapacityDefaultEntryHolder.defaultEntry);
        }
        return capacity_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableCapacity() {
        onChanged();
        ;
        if (capacity_ == null) {
          capacity_ =
              com.google.protobuf.MapField.newMapField(CapacityDefaultEntryHolder.defaultEntry);
        }
        if (!capacity_.isMutable()) {
          capacity_ = capacity_.copy();
        }
        return capacity_;
      }

      public int getCapacityCount() {
        return internalGetCapacity().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public boolean containsCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetCapacity().getMap().containsKey(key);
      }
      /** Use {@link #getCapacityMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacity() {
        return getCapacityMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacityMap() {
        return internalGetCapacity().getMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearCapacity() {
        internalGetMutableCapacity().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder removeCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableCapacity() {
        return internalGetMutableCapacity().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putCapacity(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the available resources of a node
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putAllCapacity(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableCapacity().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeResources)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeResources)
    private static final io.kubernetes.client.proto.V1.NodeResources DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeResources();
    }

    public static io.kubernetes.client.proto.V1.NodeResources getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeResources> PARSER =
        new com.google.protobuf.AbstractParser<NodeResources>() {
          @java.lang.Override
          public NodeResources parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeResources(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeResources> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeResources> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeResources getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeSelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeSelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm> getNodeSelectorTermsList();
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorTerm getNodeSelectorTerms(int index);
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    int getNodeSelectorTermsCount();
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
        getNodeSelectorTermsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getNodeSelectorTermsOrBuilder(
        int index);
  }
  /**
   *
   *
   * <pre>
   * A node selector represents the union of the results of one or more label queries
   * over a set of nodes; that is, it represents the OR of the selectors represented
   * by the node selector terms.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeSelector}
   */
  public static final class NodeSelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeSelector)
      NodeSelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeSelector.newBuilder() to construct.
    private NodeSelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeSelector() {
      nodeSelectorTerms_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeSelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  nodeSelectorTerms_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeSelectorTerm>();
                  mutable_bitField0_ |= 0x00000001;
                }
                nodeSelectorTerms_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelectorTerm.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          nodeSelectorTerms_ = java.util.Collections.unmodifiableList(nodeSelectorTerms_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeSelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeSelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeSelector.class,
              io.kubernetes.client.proto.V1.NodeSelector.Builder.class);
    }

    public static final int NODESELECTORTERMS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm> nodeSelectorTerms_;
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm>
        getNodeSelectorTermsList() {
      return nodeSelectorTerms_;
    }
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
        getNodeSelectorTermsOrBuilderList() {
      return nodeSelectorTerms_;
    }
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    public int getNodeSelectorTermsCount() {
      return nodeSelectorTerms_.size();
    }
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorTerm getNodeSelectorTerms(int index) {
      return nodeSelectorTerms_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Required. A list of node selector terms. The terms are ORed.
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getNodeSelectorTermsOrBuilder(
        int index) {
      return nodeSelectorTerms_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < nodeSelectorTerms_.size(); i++) {
        output.writeMessage(1, nodeSelectorTerms_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < nodeSelectorTerms_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, nodeSelectorTerms_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeSelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeSelector other =
          (io.kubernetes.client.proto.V1.NodeSelector) obj;

      boolean result = true;
      result = result && getNodeSelectorTermsList().equals(other.getNodeSelectorTermsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getNodeSelectorTermsCount() > 0) {
        hash = (37 * hash) + NODESELECTORTERMS_FIELD_NUMBER;
        hash = (53 * hash) + getNodeSelectorTermsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeSelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A node selector represents the union of the results of one or more label queries
     * over a set of nodes; that is, it represents the OR of the selectors represented
     * by the node selector terms.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeSelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeSelector)
        io.kubernetes.client.proto.V1.NodeSelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeSelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeSelector.class,
                io.kubernetes.client.proto.V1.NodeSelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeSelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getNodeSelectorTermsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (nodeSelectorTermsBuilder_ == null) {
          nodeSelectorTerms_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          nodeSelectorTermsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelector build() {
        io.kubernetes.client.proto.V1.NodeSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelector buildPartial() {
        io.kubernetes.client.proto.V1.NodeSelector result =
            new io.kubernetes.client.proto.V1.NodeSelector(this);
        int from_bitField0_ = bitField0_;
        if (nodeSelectorTermsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            nodeSelectorTerms_ = java.util.Collections.unmodifiableList(nodeSelectorTerms_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.nodeSelectorTerms_ = nodeSelectorTerms_;
        } else {
          result.nodeSelectorTerms_ = nodeSelectorTermsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeSelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeSelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeSelector other) {
        if (other == io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()) return this;
        if (nodeSelectorTermsBuilder_ == null) {
          if (!other.nodeSelectorTerms_.isEmpty()) {
            if (nodeSelectorTerms_.isEmpty()) {
              nodeSelectorTerms_ = other.nodeSelectorTerms_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureNodeSelectorTermsIsMutable();
              nodeSelectorTerms_.addAll(other.nodeSelectorTerms_);
            }
            onChanged();
          }
        } else {
          if (!other.nodeSelectorTerms_.isEmpty()) {
            if (nodeSelectorTermsBuilder_.isEmpty()) {
              nodeSelectorTermsBuilder_.dispose();
              nodeSelectorTermsBuilder_ = null;
              nodeSelectorTerms_ = other.nodeSelectorTerms_;
              bitField0_ = (bitField0_ & ~0x00000001);
              nodeSelectorTermsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getNodeSelectorTermsFieldBuilder()
                      : null;
            } else {
              nodeSelectorTermsBuilder_.addAllMessages(other.nodeSelectorTerms_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeSelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeSelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm> nodeSelectorTerms_ =
          java.util.Collections.emptyList();

      private void ensureNodeSelectorTermsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          nodeSelectorTerms_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeSelectorTerm>(
                  nodeSelectorTerms_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorTerm,
              io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
          nodeSelectorTermsBuilder_;

      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm>
          getNodeSelectorTermsList() {
        if (nodeSelectorTermsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(nodeSelectorTerms_);
        } else {
          return nodeSelectorTermsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public int getNodeSelectorTermsCount() {
        if (nodeSelectorTermsBuilder_ == null) {
          return nodeSelectorTerms_.size();
        } else {
          return nodeSelectorTermsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm getNodeSelectorTerms(int index) {
        if (nodeSelectorTermsBuilder_ == null) {
          return nodeSelectorTerms_.get(index);
        } else {
          return nodeSelectorTermsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder setNodeSelectorTerms(
          int index, io.kubernetes.client.proto.V1.NodeSelectorTerm value) {
        if (nodeSelectorTermsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.set(index, value);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder setNodeSelectorTerms(
          int index, io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder builderForValue) {
        if (nodeSelectorTermsBuilder_ == null) {
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.set(index, builderForValue.build());
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder addNodeSelectorTerms(io.kubernetes.client.proto.V1.NodeSelectorTerm value) {
        if (nodeSelectorTermsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.add(value);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder addNodeSelectorTerms(
          int index, io.kubernetes.client.proto.V1.NodeSelectorTerm value) {
        if (nodeSelectorTermsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.add(index, value);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder addNodeSelectorTerms(
          io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder builderForValue) {
        if (nodeSelectorTermsBuilder_ == null) {
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.add(builderForValue.build());
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder addNodeSelectorTerms(
          int index, io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder builderForValue) {
        if (nodeSelectorTermsBuilder_ == null) {
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.add(index, builderForValue.build());
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder addAllNodeSelectorTerms(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.NodeSelectorTerm> values) {
        if (nodeSelectorTermsBuilder_ == null) {
          ensureNodeSelectorTermsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, nodeSelectorTerms_);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder clearNodeSelectorTerms() {
        if (nodeSelectorTermsBuilder_ == null) {
          nodeSelectorTerms_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public Builder removeNodeSelectorTerms(int index) {
        if (nodeSelectorTermsBuilder_ == null) {
          ensureNodeSelectorTermsIsMutable();
          nodeSelectorTerms_.remove(index);
          onChanged();
        } else {
          nodeSelectorTermsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder getNodeSelectorTermsBuilder(
          int index) {
        return getNodeSelectorTermsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getNodeSelectorTermsOrBuilder(
          int index) {
        if (nodeSelectorTermsBuilder_ == null) {
          return nodeSelectorTerms_.get(index);
        } else {
          return nodeSelectorTermsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
          getNodeSelectorTermsOrBuilderList() {
        if (nodeSelectorTermsBuilder_ != null) {
          return nodeSelectorTermsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(nodeSelectorTerms_);
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder addNodeSelectorTermsBuilder() {
        return getNodeSelectorTermsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder addNodeSelectorTermsBuilder(
          int index) {
        return getNodeSelectorTermsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Required. A list of node selector terms. The terms are ORed.
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorTerm nodeSelectorTerms = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder>
          getNodeSelectorTermsBuilderList() {
        return getNodeSelectorTermsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorTerm,
              io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
          getNodeSelectorTermsFieldBuilder() {
        if (nodeSelectorTermsBuilder_ == null) {
          nodeSelectorTermsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelectorTerm,
                  io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>(
                  nodeSelectorTerms_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          nodeSelectorTerms_ = null;
        }
        return nodeSelectorTermsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeSelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeSelector)
    private static final io.kubernetes.client.proto.V1.NodeSelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeSelector();
    }

    public static io.kubernetes.client.proto.V1.NodeSelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeSelector> PARSER =
        new com.google.protobuf.AbstractParser<NodeSelector>() {
          @java.lang.Override
          public NodeSelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeSelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeSelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeSelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeSelectorRequirementOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeSelectorRequirement)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    boolean hasOperator();
    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    java.lang.String getOperator();
    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    com.google.protobuf.ByteString getOperatorBytes();

    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.util.List<java.lang.String> getValuesList();
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    int getValuesCount();
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.lang.String getValues(int index);
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    com.google.protobuf.ByteString getValuesBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * A node selector requirement is a selector that contains values, a key, and an operator
   * that relates the key and values.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeSelectorRequirement}
   */
  public static final class NodeSelectorRequirement extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeSelectorRequirement)
      NodeSelectorRequirementOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeSelectorRequirement.newBuilder() to construct.
    private NodeSelectorRequirement(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeSelectorRequirement() {
      key_ = "";
      operator_ = "";
      values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeSelectorRequirement(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                operator_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  values_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                values_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = values_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.class,
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_FIELD_NUMBER = 2;
    private volatile java.lang.Object operator_;
    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public boolean hasOperator() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public java.lang.String getOperator() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          operator_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Represents a key's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public com.google.protobuf.ByteString getOperatorBytes() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        operator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList values_;
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getValuesList() {
      return values_;
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty. If the operator is Gt or Lt, the values
     * array must have a single element, which will be interpreted as an integer.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ByteString getValuesBytes(int index) {
      return values_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, operator_);
      }
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, values_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, operator_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeSelectorRequirement)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeSelectorRequirement other =
          (io.kubernetes.client.proto.V1.NodeSelectorRequirement) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasOperator() == other.hasOperator());
      if (hasOperator()) {
        result = result && getOperator().equals(other.getOperator());
      }
      result = result && getValuesList().equals(other.getValuesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasOperator()) {
        hash = (37 * hash) + OPERATOR_FIELD_NUMBER;
        hash = (53 * hash) + getOperator().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.NodeSelectorRequirement prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A node selector requirement is a selector that contains values, a key, and an operator
     * that relates the key and values.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeSelectorRequirement}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeSelectorRequirement)
        io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeSelectorRequirement.class,
                io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeSelectorRequirement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        operator_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement build() {
        io.kubernetes.client.proto.V1.NodeSelectorRequirement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement buildPartial() {
        io.kubernetes.client.proto.V1.NodeSelectorRequirement result =
            new io.kubernetes.client.proto.V1.NodeSelectorRequirement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.operator_ = operator_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = values_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.values_ = values_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeSelectorRequirement) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeSelectorRequirement) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeSelectorRequirement other) {
        if (other == io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance())
          return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasOperator()) {
          bitField0_ |= 0x00000002;
          operator_ = other.operator_;
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeSelectorRequirement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.NodeSelectorRequirement) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object operator_ = "";
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public boolean hasOperator() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public java.lang.String getOperator() {
        java.lang.Object ref = operator_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            operator_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public com.google.protobuf.ByteString getOperatorBytes() {
        java.lang.Object ref = operator_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          operator_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperator(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder clearOperator() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operator_ = getDefaultInstance().getOperator();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents a key's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperatorBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList values_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getValuesList() {
        return values_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ByteString getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder setValues(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValues(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addAllValues(java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, values_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder clearValues() {
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty. If the operator is Gt or Lt, the values
       * array must have a single element, which will be interpreted as an integer.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValuesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeSelectorRequirement)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeSelectorRequirement)
    private static final io.kubernetes.client.proto.V1.NodeSelectorRequirement DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeSelectorRequirement();
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorRequirement getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeSelectorRequirement> PARSER =
        new com.google.protobuf.AbstractParser<NodeSelectorRequirement>() {
          @java.lang.Override
          public NodeSelectorRequirement parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeSelectorRequirement(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeSelectorRequirement> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeSelectorRequirement> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeSelectorRequirement getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeSelectorTermOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeSelectorTerm)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> getMatchExpressionsList();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchExpressions(int index);
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    int getMatchExpressionsCount();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
        getMatchExpressionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder getMatchExpressionsOrBuilder(
        int index);

    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> getMatchFieldsList();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchFields(int index);
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    int getMatchFieldsCount();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
        getMatchFieldsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder getMatchFieldsOrBuilder(
        int index);
  }
  /**
   *
   *
   * <pre>
   * A null or empty node selector term matches no objects. The requirements of
   * them are ANDed.
   * The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeSelectorTerm}
   */
  public static final class NodeSelectorTerm extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeSelectorTerm)
      NodeSelectorTermOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeSelectorTerm.newBuilder() to construct.
    private NodeSelectorTerm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeSelectorTerm() {
      matchExpressions_ = java.util.Collections.emptyList();
      matchFields_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeSelectorTerm(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  matchExpressions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.NodeSelectorRequirement>();
                  mutable_bitField0_ |= 0x00000001;
                }
                matchExpressions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelectorRequirement.PARSER,
                        extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  matchFields_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.NodeSelectorRequirement>();
                  mutable_bitField0_ |= 0x00000002;
                }
                matchFields_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelectorRequirement.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          matchExpressions_ = java.util.Collections.unmodifiableList(matchExpressions_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          matchFields_ = java.util.Collections.unmodifiableList(matchFields_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeSelectorTerm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeSelectorTerm.class,
              io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder.class);
    }

    public static final int MATCHEXPRESSIONS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> matchExpressions_;
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement>
        getMatchExpressionsList() {
      return matchExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
        getMatchExpressionsOrBuilderList() {
      return matchExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public int getMatchExpressionsCount() {
      return matchExpressions_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchExpressions(int index) {
      return matchExpressions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's labels.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder
        getMatchExpressionsOrBuilder(int index) {
      return matchExpressions_.get(index);
    }

    public static final int MATCHFIELDS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> matchFields_;
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement>
        getMatchFieldsList() {
      return matchFields_;
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
        getMatchFieldsOrBuilderList() {
      return matchFields_;
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    public int getMatchFieldsCount() {
      return matchFields_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchFields(int index) {
      return matchFields_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of node selector requirements by node's fields.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder getMatchFieldsOrBuilder(
        int index) {
      return matchFields_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < matchExpressions_.size(); i++) {
        output.writeMessage(1, matchExpressions_.get(i));
      }
      for (int i = 0; i < matchFields_.size(); i++) {
        output.writeMessage(2, matchFields_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < matchExpressions_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, matchExpressions_.get(i));
      }
      for (int i = 0; i < matchFields_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, matchFields_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeSelectorTerm)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeSelectorTerm other =
          (io.kubernetes.client.proto.V1.NodeSelectorTerm) obj;

      boolean result = true;
      result = result && getMatchExpressionsList().equals(other.getMatchExpressionsList());
      result = result && getMatchFieldsList().equals(other.getMatchFieldsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMatchExpressionsCount() > 0) {
        hash = (37 * hash) + MATCHEXPRESSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMatchExpressionsList().hashCode();
      }
      if (getMatchFieldsCount() > 0) {
        hash = (37 * hash) + MATCHFIELDS_FIELD_NUMBER;
        hash = (53 * hash) + getMatchFieldsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeSelectorTerm prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A null or empty node selector term matches no objects. The requirements of
     * them are ANDed.
     * The TopologySelectorTerm type implements a subset of the NodeSelectorTerm.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeSelectorTerm}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeSelectorTerm)
        io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorTerm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeSelectorTerm.class,
                io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeSelectorTerm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMatchExpressionsFieldBuilder();
          getMatchFieldsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          matchExpressionsBuilder_.clear();
        }
        if (matchFieldsBuilder_ == null) {
          matchFields_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          matchFieldsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorTerm build() {
        io.kubernetes.client.proto.V1.NodeSelectorTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSelectorTerm buildPartial() {
        io.kubernetes.client.proto.V1.NodeSelectorTerm result =
            new io.kubernetes.client.proto.V1.NodeSelectorTerm(this);
        int from_bitField0_ = bitField0_;
        if (matchExpressionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            matchExpressions_ = java.util.Collections.unmodifiableList(matchExpressions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.matchExpressions_ = matchExpressions_;
        } else {
          result.matchExpressions_ = matchExpressionsBuilder_.build();
        }
        if (matchFieldsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            matchFields_ = java.util.Collections.unmodifiableList(matchFields_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.matchFields_ = matchFields_;
        } else {
          result.matchFields_ = matchFieldsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeSelectorTerm) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeSelectorTerm) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeSelectorTerm other) {
        if (other == io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance())
          return this;
        if (matchExpressionsBuilder_ == null) {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressions_.isEmpty()) {
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMatchExpressionsIsMutable();
              matchExpressions_.addAll(other.matchExpressions_);
            }
            onChanged();
          }
        } else {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressionsBuilder_.isEmpty()) {
              matchExpressionsBuilder_.dispose();
              matchExpressionsBuilder_ = null;
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              matchExpressionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getMatchExpressionsFieldBuilder()
                      : null;
            } else {
              matchExpressionsBuilder_.addAllMessages(other.matchExpressions_);
            }
          }
        }
        if (matchFieldsBuilder_ == null) {
          if (!other.matchFields_.isEmpty()) {
            if (matchFields_.isEmpty()) {
              matchFields_ = other.matchFields_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureMatchFieldsIsMutable();
              matchFields_.addAll(other.matchFields_);
            }
            onChanged();
          }
        } else {
          if (!other.matchFields_.isEmpty()) {
            if (matchFieldsBuilder_.isEmpty()) {
              matchFieldsBuilder_.dispose();
              matchFieldsBuilder_ = null;
              matchFields_ = other.matchFields_;
              bitField0_ = (bitField0_ & ~0x00000002);
              matchFieldsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getMatchFieldsFieldBuilder()
                      : null;
            } else {
              matchFieldsBuilder_.addAllMessages(other.matchFields_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeSelectorTerm parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeSelectorTerm) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement>
          matchExpressions_ = java.util.Collections.emptyList();

      private void ensureMatchExpressionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          matchExpressions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeSelectorRequirement>(
                  matchExpressions_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorRequirement,
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          matchExpressionsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement>
          getMatchExpressionsList() {
        if (matchExpressionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        } else {
          return matchExpressionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public int getMatchExpressionsCount() {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.size();
        } else {
          return matchExpressionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchExpressions(int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);
        } else {
          return matchExpressionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder setMatchExpressions(
          int index, io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder setMatchExpressions(
          int index,
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          int index, io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          int index,
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addAllMatchExpressions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirement>
              values) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, matchExpressions_);
          onChanged();
        } else {
          matchExpressionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder clearMatchExpressions() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder removeMatchExpressions(int index) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.remove(index);
          onChanged();
        } else {
          matchExpressionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder
          getMatchExpressionsBuilder(int index) {
        return getMatchExpressionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder
          getMatchExpressionsOrBuilder(int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);
        } else {
          return matchExpressionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          getMatchExpressionsOrBuilderList() {
        if (matchExpressionsBuilder_ != null) {
          return matchExpressionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder
          addMatchExpressionsBuilder() {
        return getMatchExpressionsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder
          addMatchExpressionsBuilder(int index) {
        return getMatchExpressionsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's labels.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder>
          getMatchExpressionsBuilderList() {
        return getMatchExpressionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorRequirement,
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          getMatchExpressionsFieldBuilder() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelectorRequirement,
                  io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>(
                  matchExpressions_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          matchExpressions_ = null;
        }
        return matchExpressionsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement> matchFields_ =
          java.util.Collections.emptyList();

      private void ensureMatchFieldsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          matchFields_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeSelectorRequirement>(
                  matchFields_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorRequirement,
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          matchFieldsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement>
          getMatchFieldsList() {
        if (matchFieldsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matchFields_);
        } else {
          return matchFieldsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public int getMatchFieldsCount() {
        if (matchFieldsBuilder_ == null) {
          return matchFields_.size();
        } else {
          return matchFieldsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement getMatchFields(int index) {
        if (matchFieldsBuilder_ == null) {
          return matchFields_.get(index);
        } else {
          return matchFieldsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder setMatchFields(
          int index, io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchFieldsIsMutable();
          matchFields_.set(index, value);
          onChanged();
        } else {
          matchFieldsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder setMatchFields(
          int index,
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchFieldsBuilder_ == null) {
          ensureMatchFieldsIsMutable();
          matchFields_.set(index, builderForValue.build());
          onChanged();
        } else {
          matchFieldsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder addMatchFields(io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchFieldsIsMutable();
          matchFields_.add(value);
          onChanged();
        } else {
          matchFieldsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder addMatchFields(
          int index, io.kubernetes.client.proto.V1.NodeSelectorRequirement value) {
        if (matchFieldsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchFieldsIsMutable();
          matchFields_.add(index, value);
          onChanged();
        } else {
          matchFieldsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder addMatchFields(
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchFieldsBuilder_ == null) {
          ensureMatchFieldsIsMutable();
          matchFields_.add(builderForValue.build());
          onChanged();
        } else {
          matchFieldsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder addMatchFields(
          int index,
          io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder builderForValue) {
        if (matchFieldsBuilder_ == null) {
          ensureMatchFieldsIsMutable();
          matchFields_.add(index, builderForValue.build());
          onChanged();
        } else {
          matchFieldsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder addAllMatchFields(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.NodeSelectorRequirement>
              values) {
        if (matchFieldsBuilder_ == null) {
          ensureMatchFieldsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, matchFields_);
          onChanged();
        } else {
          matchFieldsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder clearMatchFields() {
        if (matchFieldsBuilder_ == null) {
          matchFields_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          matchFieldsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public Builder removeMatchFields(int index) {
        if (matchFieldsBuilder_ == null) {
          ensureMatchFieldsIsMutable();
          matchFields_.remove(index);
          onChanged();
        } else {
          matchFieldsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder getMatchFieldsBuilder(
          int index) {
        return getMatchFieldsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder getMatchFieldsOrBuilder(
          int index) {
        if (matchFieldsBuilder_ == null) {
          return matchFields_.get(index);
        } else {
          return matchFieldsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          getMatchFieldsOrBuilderList() {
        if (matchFieldsBuilder_ != null) {
          return matchFieldsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matchFields_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder addMatchFieldsBuilder() {
        return getMatchFieldsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder addMatchFieldsBuilder(
          int index) {
        return getMatchFieldsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.NodeSelectorRequirement.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of node selector requirements by node's fields.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeSelectorRequirement matchFields = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder>
          getMatchFieldsBuilderList() {
        return getMatchFieldsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorRequirement,
              io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>
          getMatchFieldsFieldBuilder() {
        if (matchFieldsBuilder_ == null) {
          matchFieldsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelectorRequirement,
                  io.kubernetes.client.proto.V1.NodeSelectorRequirement.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorRequirementOrBuilder>(
                  matchFields_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          matchFields_ = null;
        }
        return matchFieldsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeSelectorTerm)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeSelectorTerm)
    private static final io.kubernetes.client.proto.V1.NodeSelectorTerm DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeSelectorTerm();
    }

    public static io.kubernetes.client.proto.V1.NodeSelectorTerm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeSelectorTerm> PARSER =
        new com.google.protobuf.AbstractParser<NodeSelectorTerm>() {
          @java.lang.Override
          public NodeSelectorTerm parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeSelectorTerm(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeSelectorTerm> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeSelectorTerm> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeSelectorTerm getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    boolean hasPodCIDR();
    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    java.lang.String getPodCIDR();
    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    com.google.protobuf.ByteString getPodCIDRBytes();

    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    boolean hasProviderID();
    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    java.lang.String getProviderID();
    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    com.google.protobuf.ByteString getProviderIDBytes();

    /**
     *
     *
     * <pre>
     * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
     * +optional
     * </pre>
     *
     * <code>optional bool unschedulable = 4;</code>
     */
    boolean hasUnschedulable();
    /**
     *
     *
     * <pre>
     * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
     * +optional
     * </pre>
     *
     * <code>optional bool unschedulable = 4;</code>
     */
    boolean getUnschedulable();

    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Taint> getTaintsList();
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    io.kubernetes.client.proto.V1.Taint getTaints(int index);
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    int getTaintsCount();
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.TaintOrBuilder> getTaintsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    io.kubernetes.client.proto.V1.TaintOrBuilder getTaintsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    boolean hasConfigSource();
    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSource getConfigSource();
    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getConfigSourceOrBuilder();

    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    boolean hasExternalID();
    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    java.lang.String getExternalID();
    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    com.google.protobuf.ByteString getExternalIDBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeSpec describes the attributes that a node is created with.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeSpec}
   */
  public static final class NodeSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeSpec)
      NodeSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeSpec.newBuilder() to construct.
    private NodeSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeSpec() {
      podCIDR_ = "";
      providerID_ = "";
      unschedulable_ = false;
      taints_ = java.util.Collections.emptyList();
      externalID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                podCIDR_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                externalID_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                providerID_ = bs;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000004;
                unschedulable_ = input.readBool();
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  taints_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Taint>();
                  mutable_bitField0_ |= 0x00000008;
                }
                taints_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Taint.PARSER, extensionRegistry));
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1.NodeConfigSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = configSource_.toBuilder();
                }
                configSource_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeConfigSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configSource_);
                  configSource_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          taints_ = java.util.Collections.unmodifiableList(taints_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSpec_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeSpec.class,
              io.kubernetes.client.proto.V1.NodeSpec.Builder.class);
    }

    private int bitField0_;
    public static final int PODCIDR_FIELD_NUMBER = 1;
    private volatile java.lang.Object podCIDR_;
    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    public boolean hasPodCIDR() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    public java.lang.String getPodCIDR() {
      java.lang.Object ref = podCIDR_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          podCIDR_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * PodCIDR represents the pod IP range assigned to the node.
     * +optional
     * </pre>
     *
     * <code>optional string podCIDR = 1;</code>
     */
    public com.google.protobuf.ByteString getPodCIDRBytes() {
      java.lang.Object ref = podCIDR_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        podCIDR_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROVIDERID_FIELD_NUMBER = 3;
    private volatile java.lang.Object providerID_;
    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    public boolean hasProviderID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    public java.lang.String getProviderID() {
      java.lang.Object ref = providerID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          providerID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
     * +optional
     * </pre>
     *
     * <code>optional string providerID = 3;</code>
     */
    public com.google.protobuf.ByteString getProviderIDBytes() {
      java.lang.Object ref = providerID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        providerID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UNSCHEDULABLE_FIELD_NUMBER = 4;
    private boolean unschedulable_;
    /**
     *
     *
     * <pre>
     * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
     * +optional
     * </pre>
     *
     * <code>optional bool unschedulable = 4;</code>
     */
    public boolean hasUnschedulable() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
     * +optional
     * </pre>
     *
     * <code>optional bool unschedulable = 4;</code>
     */
    public boolean getUnschedulable() {
      return unschedulable_;
    }

    public static final int TAINTS_FIELD_NUMBER = 5;
    private java.util.List<io.kubernetes.client.proto.V1.Taint> taints_;
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Taint> getTaintsList() {
      return taints_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.TaintOrBuilder>
        getTaintsOrBuilderList() {
      return taints_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    public int getTaintsCount() {
      return taints_.size();
    }
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    public io.kubernetes.client.proto.V1.Taint getTaints(int index) {
      return taints_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If specified, the node's taints.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
     */
    public io.kubernetes.client.proto.V1.TaintOrBuilder getTaintsOrBuilder(int index) {
      return taints_.get(index);
    }

    public static final int CONFIGSOURCE_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1.NodeConfigSource configSource_;
    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    public boolean hasConfigSource() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSource getConfigSource() {
      return configSource_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : configSource_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the source to get node configuration from
     * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getConfigSourceOrBuilder() {
      return configSource_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
          : configSource_;
    }

    public static final int EXTERNALID_FIELD_NUMBER = 2;
    private volatile java.lang.Object externalID_;
    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    public boolean hasExternalID() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    public java.lang.String getExternalID() {
      java.lang.Object ref = externalID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          externalID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
     * see: https://issues.k8s.io/61966
     * +optional
     * </pre>
     *
     * <code>optional string externalID = 2;</code>
     */
    public com.google.protobuf.ByteString getExternalIDBytes() {
      java.lang.Object ref = externalID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        externalID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, podCIDR_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, externalID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, providerID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(4, unschedulable_);
      }
      for (int i = 0; i < taints_.size(); i++) {
        output.writeMessage(5, taints_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(6, getConfigSource());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, podCIDR_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, externalID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, providerID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, unschedulable_);
      }
      for (int i = 0; i < taints_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, taints_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getConfigSource());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeSpec other = (io.kubernetes.client.proto.V1.NodeSpec) obj;

      boolean result = true;
      result = result && (hasPodCIDR() == other.hasPodCIDR());
      if (hasPodCIDR()) {
        result = result && getPodCIDR().equals(other.getPodCIDR());
      }
      result = result && (hasProviderID() == other.hasProviderID());
      if (hasProviderID()) {
        result = result && getProviderID().equals(other.getProviderID());
      }
      result = result && (hasUnschedulable() == other.hasUnschedulable());
      if (hasUnschedulable()) {
        result = result && (getUnschedulable() == other.getUnschedulable());
      }
      result = result && getTaintsList().equals(other.getTaintsList());
      result = result && (hasConfigSource() == other.hasConfigSource());
      if (hasConfigSource()) {
        result = result && getConfigSource().equals(other.getConfigSource());
      }
      result = result && (hasExternalID() == other.hasExternalID());
      if (hasExternalID()) {
        result = result && getExternalID().equals(other.getExternalID());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPodCIDR()) {
        hash = (37 * hash) + PODCIDR_FIELD_NUMBER;
        hash = (53 * hash) + getPodCIDR().hashCode();
      }
      if (hasProviderID()) {
        hash = (37 * hash) + PROVIDERID_FIELD_NUMBER;
        hash = (53 * hash) + getProviderID().hashCode();
      }
      if (hasUnschedulable()) {
        hash = (37 * hash) + UNSCHEDULABLE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getUnschedulable());
      }
      if (getTaintsCount() > 0) {
        hash = (37 * hash) + TAINTS_FIELD_NUMBER;
        hash = (53 * hash) + getTaintsList().hashCode();
      }
      if (hasConfigSource()) {
        hash = (37 * hash) + CONFIGSOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getConfigSource().hashCode();
      }
      if (hasExternalID()) {
        hash = (37 * hash) + EXTERNALID_FIELD_NUMBER;
        hash = (53 * hash) + getExternalID().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeSpec describes the attributes that a node is created with.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeSpec)
        io.kubernetes.client.proto.V1.NodeSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSpec_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeSpec.class,
                io.kubernetes.client.proto.V1.NodeSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getTaintsFieldBuilder();
          getConfigSourceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        podCIDR_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        providerID_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        unschedulable_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (taintsBuilder_ == null) {
          taints_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          taintsBuilder_.clear();
        }
        if (configSourceBuilder_ == null) {
          configSource_ = null;
        } else {
          configSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        externalID_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSpec build() {
        io.kubernetes.client.proto.V1.NodeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSpec buildPartial() {
        io.kubernetes.client.proto.V1.NodeSpec result =
            new io.kubernetes.client.proto.V1.NodeSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.podCIDR_ = podCIDR_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.providerID_ = providerID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.unschedulable_ = unschedulable_;
        if (taintsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            taints_ = java.util.Collections.unmodifiableList(taints_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.taints_ = taints_;
        } else {
          result.taints_ = taintsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        if (configSourceBuilder_ == null) {
          result.configSource_ = configSource_;
        } else {
          result.configSource_ = configSourceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.externalID_ = externalID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeSpec other) {
        if (other == io.kubernetes.client.proto.V1.NodeSpec.getDefaultInstance()) return this;
        if (other.hasPodCIDR()) {
          bitField0_ |= 0x00000001;
          podCIDR_ = other.podCIDR_;
          onChanged();
        }
        if (other.hasProviderID()) {
          bitField0_ |= 0x00000002;
          providerID_ = other.providerID_;
          onChanged();
        }
        if (other.hasUnschedulable()) {
          setUnschedulable(other.getUnschedulable());
        }
        if (taintsBuilder_ == null) {
          if (!other.taints_.isEmpty()) {
            if (taints_.isEmpty()) {
              taints_ = other.taints_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureTaintsIsMutable();
              taints_.addAll(other.taints_);
            }
            onChanged();
          }
        } else {
          if (!other.taints_.isEmpty()) {
            if (taintsBuilder_.isEmpty()) {
              taintsBuilder_.dispose();
              taintsBuilder_ = null;
              taints_ = other.taints_;
              bitField0_ = (bitField0_ & ~0x00000008);
              taintsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getTaintsFieldBuilder()
                      : null;
            } else {
              taintsBuilder_.addAllMessages(other.taints_);
            }
          }
        }
        if (other.hasConfigSource()) {
          mergeConfigSource(other.getConfigSource());
        }
        if (other.hasExternalID()) {
          bitField0_ |= 0x00000020;
          externalID_ = other.externalID_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object podCIDR_ = "";
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public boolean hasPodCIDR() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public java.lang.String getPodCIDR() {
        java.lang.Object ref = podCIDR_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            podCIDR_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public com.google.protobuf.ByteString getPodCIDRBytes() {
        java.lang.Object ref = podCIDR_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          podCIDR_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public Builder setPodCIDR(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        podCIDR_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public Builder clearPodCIDR() {
        bitField0_ = (bitField0_ & ~0x00000001);
        podCIDR_ = getDefaultInstance().getPodCIDR();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * PodCIDR represents the pod IP range assigned to the node.
       * +optional
       * </pre>
       *
       * <code>optional string podCIDR = 1;</code>
       */
      public Builder setPodCIDRBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        podCIDR_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object providerID_ = "";
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public boolean hasProviderID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public java.lang.String getProviderID() {
        java.lang.Object ref = providerID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            providerID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public com.google.protobuf.ByteString getProviderIDBytes() {
        java.lang.Object ref = providerID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          providerID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public Builder setProviderID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        providerID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public Builder clearProviderID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        providerID_ = getDefaultInstance().getProviderID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID of the node assigned by the cloud provider in the format: &lt;ProviderName&gt;://&lt;ProviderSpecificNodeID&gt;
       * +optional
       * </pre>
       *
       * <code>optional string providerID = 3;</code>
       */
      public Builder setProviderIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        providerID_ = value;
        onChanged();
        return this;
      }

      private boolean unschedulable_;
      /**
       *
       *
       * <pre>
       * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
       * +optional
       * </pre>
       *
       * <code>optional bool unschedulable = 4;</code>
       */
      public boolean hasUnschedulable() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
       * +optional
       * </pre>
       *
       * <code>optional bool unschedulable = 4;</code>
       */
      public boolean getUnschedulable() {
        return unschedulable_;
      }
      /**
       *
       *
       * <pre>
       * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
       * +optional
       * </pre>
       *
       * <code>optional bool unschedulable = 4;</code>
       */
      public Builder setUnschedulable(boolean value) {
        bitField0_ |= 0x00000004;
        unschedulable_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unschedulable controls node schedulability of new pods. By default, node is schedulable.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration
       * +optional
       * </pre>
       *
       * <code>optional bool unschedulable = 4;</code>
       */
      public Builder clearUnschedulable() {
        bitField0_ = (bitField0_ & ~0x00000004);
        unschedulable_ = false;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Taint> taints_ =
          java.util.Collections.emptyList();

      private void ensureTaintsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          taints_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Taint>(taints_);
          bitField0_ |= 0x00000008;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Taint,
              io.kubernetes.client.proto.V1.Taint.Builder,
              io.kubernetes.client.proto.V1.TaintOrBuilder>
          taintsBuilder_;

      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Taint> getTaintsList() {
        if (taintsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(taints_);
        } else {
          return taintsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public int getTaintsCount() {
        if (taintsBuilder_ == null) {
          return taints_.size();
        } else {
          return taintsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public io.kubernetes.client.proto.V1.Taint getTaints(int index) {
        if (taintsBuilder_ == null) {
          return taints_.get(index);
        } else {
          return taintsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder setTaints(int index, io.kubernetes.client.proto.V1.Taint value) {
        if (taintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaintsIsMutable();
          taints_.set(index, value);
          onChanged();
        } else {
          taintsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder setTaints(
          int index, io.kubernetes.client.proto.V1.Taint.Builder builderForValue) {
        if (taintsBuilder_ == null) {
          ensureTaintsIsMutable();
          taints_.set(index, builderForValue.build());
          onChanged();
        } else {
          taintsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder addTaints(io.kubernetes.client.proto.V1.Taint value) {
        if (taintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaintsIsMutable();
          taints_.add(value);
          onChanged();
        } else {
          taintsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder addTaints(int index, io.kubernetes.client.proto.V1.Taint value) {
        if (taintsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTaintsIsMutable();
          taints_.add(index, value);
          onChanged();
        } else {
          taintsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder addTaints(io.kubernetes.client.proto.V1.Taint.Builder builderForValue) {
        if (taintsBuilder_ == null) {
          ensureTaintsIsMutable();
          taints_.add(builderForValue.build());
          onChanged();
        } else {
          taintsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder addTaints(
          int index, io.kubernetes.client.proto.V1.Taint.Builder builderForValue) {
        if (taintsBuilder_ == null) {
          ensureTaintsIsMutable();
          taints_.add(index, builderForValue.build());
          onChanged();
        } else {
          taintsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder addAllTaints(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Taint> values) {
        if (taintsBuilder_ == null) {
          ensureTaintsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, taints_);
          onChanged();
        } else {
          taintsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder clearTaints() {
        if (taintsBuilder_ == null) {
          taints_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          taintsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public Builder removeTaints(int index) {
        if (taintsBuilder_ == null) {
          ensureTaintsIsMutable();
          taints_.remove(index);
          onChanged();
        } else {
          taintsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public io.kubernetes.client.proto.V1.Taint.Builder getTaintsBuilder(int index) {
        return getTaintsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public io.kubernetes.client.proto.V1.TaintOrBuilder getTaintsOrBuilder(int index) {
        if (taintsBuilder_ == null) {
          return taints_.get(index);
        } else {
          return taintsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.TaintOrBuilder>
          getTaintsOrBuilderList() {
        if (taintsBuilder_ != null) {
          return taintsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(taints_);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public io.kubernetes.client.proto.V1.Taint.Builder addTaintsBuilder() {
        return getTaintsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Taint.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public io.kubernetes.client.proto.V1.Taint.Builder addTaintsBuilder(int index) {
        return getTaintsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Taint.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, the node's taints.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Taint taints = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Taint.Builder> getTaintsBuilderList() {
        return getTaintsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Taint,
              io.kubernetes.client.proto.V1.Taint.Builder,
              io.kubernetes.client.proto.V1.TaintOrBuilder>
          getTaintsFieldBuilder() {
        if (taintsBuilder_ == null) {
          taintsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Taint,
                  io.kubernetes.client.proto.V1.Taint.Builder,
                  io.kubernetes.client.proto.V1.TaintOrBuilder>(
                  taints_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          taints_ = null;
        }
        return taintsBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeConfigSource configSource_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          configSourceBuilder_;
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public boolean hasConfigSource() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource getConfigSource() {
        if (configSourceBuilder_ == null) {
          return configSource_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : configSource_;
        } else {
          return configSourceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public Builder setConfigSource(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (configSourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configSource_ = value;
          onChanged();
        } else {
          configSourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public Builder setConfigSource(
          io.kubernetes.client.proto.V1.NodeConfigSource.Builder builderForValue) {
        if (configSourceBuilder_ == null) {
          configSource_ = builderForValue.build();
          onChanged();
        } else {
          configSourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public Builder mergeConfigSource(io.kubernetes.client.proto.V1.NodeConfigSource value) {
        if (configSourceBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && configSource_ != null
              && configSource_
                  != io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()) {
            configSource_ =
                io.kubernetes.client.proto.V1.NodeConfigSource.newBuilder(configSource_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configSource_ = value;
          }
          onChanged();
        } else {
          configSourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public Builder clearConfigSource() {
        if (configSourceBuilder_ == null) {
          configSource_ = null;
          onChanged();
        } else {
          configSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSource.Builder getConfigSourceBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getConfigSourceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder getConfigSourceOrBuilder() {
        if (configSourceBuilder_ != null) {
          return configSourceBuilder_.getMessageOrBuilder();
        } else {
          return configSource_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigSource.getDefaultInstance()
              : configSource_;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the source to get node configuration from
       * The DynamicKubeletConfig feature gate must be enabled for the Kubelet to use this field
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigSource configSource = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigSource,
              io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
              io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>
          getConfigSourceFieldBuilder() {
        if (configSourceBuilder_ == null) {
          configSourceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeConfigSource,
                  io.kubernetes.client.proto.V1.NodeConfigSource.Builder,
                  io.kubernetes.client.proto.V1.NodeConfigSourceOrBuilder>(
                  getConfigSource(), getParentForChildren(), isClean());
          configSource_ = null;
        }
        return configSourceBuilder_;
      }

      private java.lang.Object externalID_ = "";
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public boolean hasExternalID() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public java.lang.String getExternalID() {
        java.lang.Object ref = externalID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            externalID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public com.google.protobuf.ByteString getExternalIDBytes() {
        java.lang.Object ref = externalID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          externalID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder setExternalID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        externalID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder clearExternalID() {
        bitField0_ = (bitField0_ & ~0x00000020);
        externalID_ = getDefaultInstance().getExternalID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Deprecated. Not all kubelets will set this field. Remove field after 1.13.
       * see: https://issues.k8s.io/61966
       * +optional
       * </pre>
       *
       * <code>optional string externalID = 2;</code>
       */
      public Builder setExternalIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        externalID_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeSpec)
    private static final io.kubernetes.client.proto.V1.NodeSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeSpec();
    }

    public static io.kubernetes.client.proto.V1.NodeSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeSpec> PARSER =
        new com.google.protobuf.AbstractParser<NodeSpec>() {
          @java.lang.Override
          public NodeSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    int getCapacityCount();
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    boolean containsCapacity(java.lang.String key);
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacity();
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacityMap();
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    int getAllocatableCount();
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    boolean containsAllocatable(java.lang.String key);
    /** Use {@link #getAllocatableMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getAllocatable();
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getAllocatableMap();
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getAllocatableOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getAllocatableOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    boolean hasPhase();
    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    java.lang.String getPhase();
    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    com.google.protobuf.ByteString getPhaseBytes();

    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeCondition> getConditionsList();
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    io.kubernetes.client.proto.V1.NodeCondition getConditions(int index);
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    io.kubernetes.client.proto.V1.NodeConditionOrBuilder getConditionsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.NodeAddress> getAddressesList();
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    io.kubernetes.client.proto.V1.NodeAddress getAddresses(int index);
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    int getAddressesCount();
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.NodeAddressOrBuilder>
        getAddressesOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    io.kubernetes.client.proto.V1.NodeAddressOrBuilder getAddressesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    boolean hasDaemonEndpoints();
    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDaemonEndpoints();
    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder getDaemonEndpointsOrBuilder();

    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    boolean hasNodeInfo();
    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    io.kubernetes.client.proto.V1.NodeSystemInfo getNodeInfo();
    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder getNodeInfoOrBuilder();

    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ContainerImage> getImagesList();
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    io.kubernetes.client.proto.V1.ContainerImage getImages(int index);
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    int getImagesCount();
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerImageOrBuilder>
        getImagesOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    io.kubernetes.client.proto.V1.ContainerImageOrBuilder getImagesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    java.util.List<java.lang.String> getVolumesInUseList();
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    int getVolumesInUseCount();
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    java.lang.String getVolumesInUse(int index);
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    com.google.protobuf.ByteString getVolumesInUseBytes(int index);

    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.AttachedVolume> getVolumesAttachedList();
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    io.kubernetes.client.proto.V1.AttachedVolume getVolumesAttached(int index);
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    int getVolumesAttachedCount();
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>
        getVolumesAttachedOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder getVolumesAttachedOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    boolean hasConfig();
    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigStatus getConfig();
    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder getConfigOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * NodeStatus is information about the current status of a node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeStatus}
   */
  public static final class NodeStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeStatus)
      NodeStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeStatus.newBuilder() to construct.
    private NodeStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeStatus() {
      phase_ = "";
      conditions_ = java.util.Collections.emptyList();
      addresses_ = java.util.Collections.emptyList();
      images_ = java.util.Collections.emptyList();
      volumesInUse_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      volumesAttached_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  capacity_ =
                      com.google.protobuf.MapField.newMapField(
                          CapacityDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    capacity__ =
                        input.readMessage(
                            CapacityDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                capacity_.getMutableMap().put(capacity__.getKey(), capacity__.getValue());
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  allocatable_ =
                      com.google.protobuf.MapField.newMapField(
                          AllocatableDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    allocatable__ =
                        input.readMessage(
                            AllocatableDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                allocatable_.getMutableMap().put(allocatable__.getKey(), allocatable__.getValue());
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                phase_ = bs;
                break;
              }
            case 34:
              {
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  conditions_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeCondition>();
                  mutable_bitField0_ |= 0x00000008;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeCondition.PARSER, extensionRegistry));
                break;
              }
            case 42:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  addresses_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeAddress>();
                  mutable_bitField0_ |= 0x00000010;
                }
                addresses_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeAddress.PARSER, extensionRegistry));
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = daemonEndpoints_.toBuilder();
                }
                daemonEndpoints_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeDaemonEndpoints.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(daemonEndpoints_);
                  daemonEndpoints_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.NodeSystemInfo.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = nodeInfo_.toBuilder();
                }
                nodeInfo_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSystemInfo.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nodeInfo_);
                  nodeInfo_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 66:
              {
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  images_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerImage>();
                  mutable_bitField0_ |= 0x00000080;
                }
                images_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerImage.PARSER, extensionRegistry));
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                  volumesInUse_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000100;
                }
                volumesInUse_.add(bs);
                break;
              }
            case 82:
              {
                if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                  volumesAttached_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.AttachedVolume>();
                  mutable_bitField0_ |= 0x00000200;
                }
                volumesAttached_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AttachedVolume.PARSER, extensionRegistry));
                break;
              }
            case 90:
              {
                io.kubernetes.client.proto.V1.NodeConfigStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = config_.toBuilder();
                }
                config_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeConfigStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(config_);
                  config_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          addresses_ = java.util.Collections.unmodifiableList(addresses_);
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          images_ = java.util.Collections.unmodifiableList(images_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          volumesInUse_ = volumesInUse_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          volumesAttached_ = java.util.Collections.unmodifiableList(volumesAttached_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_NodeStatus_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetCapacity();
        case 2:
          return internalGetAllocatable();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeStatus.class,
              io.kubernetes.client.proto.V1.NodeStatus.Builder.class);
    }

    private int bitField0_;
    public static final int CAPACITY_FIELD_NUMBER = 1;

    private static final class CapacityDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        capacity_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetCapacity() {
      if (capacity_ == null) {
        return com.google.protobuf.MapField.emptyMapField(CapacityDefaultEntryHolder.defaultEntry);
      }
      return capacity_;
    }

    public int getCapacityCount() {
      return internalGetCapacity().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public boolean containsCapacity(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetCapacity().getMap().containsKey(key);
    }
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacity() {
      return getCapacityMap();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacityMap() {
      return internalGetCapacity().getMap();
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Capacity represents the total resources of a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int ALLOCATABLE_FIELD_NUMBER = 2;

    private static final class AllocatableDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        allocatable_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetAllocatable() {
      if (allocatable_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            AllocatableDefaultEntryHolder.defaultEntry);
      }
      return allocatable_;
    }

    public int getAllocatableCount() {
      return internalGetAllocatable().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    public boolean containsAllocatable(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetAllocatable().getMap().containsKey(key);
    }
    /** Use {@link #getAllocatableMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getAllocatable() {
      return getAllocatableMap();
    }
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getAllocatableMap() {
      return internalGetAllocatable().getMap();
    }
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getAllocatableOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetAllocatable().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Allocatable represents the resources of a node that are available for scheduling.
     * Defaults to Capacity.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getAllocatableOrThrow(
        java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetAllocatable().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int PHASE_FIELD_NUMBER = 3;
    private volatile java.lang.Object phase_;
    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    public java.lang.String getPhase() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          phase_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * NodePhase is the recently observed lifecycle phase of the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
     * The field is never populated, and now is deprecated.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 3;</code>
     */
    public com.google.protobuf.ByteString getPhaseBytes() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        phase_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONDITIONS_FIELD_NUMBER = 4;
    private java.util.List<io.kubernetes.client.proto.V1.NodeCondition> conditions_;
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.NodeCondition> getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    public io.kubernetes.client.proto.V1.NodeCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Conditions is an array of current observed node conditions.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConditionOrBuilder getConditionsOrBuilder(int index) {
      return conditions_.get(index);
    }

    public static final int ADDRESSES_FIELD_NUMBER = 5;
    private java.util.List<io.kubernetes.client.proto.V1.NodeAddress> addresses_;
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.NodeAddress> getAddressesList() {
      return addresses_;
    }
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.NodeAddressOrBuilder>
        getAddressesOrBuilderList() {
      return addresses_;
    }
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    public int getAddressesCount() {
      return addresses_.size();
    }
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    public io.kubernetes.client.proto.V1.NodeAddress getAddresses(int index) {
      return addresses_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of addresses reachable to the node.
     * Queried from cloud provider, if available.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
     */
    public io.kubernetes.client.proto.V1.NodeAddressOrBuilder getAddressesOrBuilder(int index) {
      return addresses_.get(index);
    }

    public static final int DAEMONENDPOINTS_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1.NodeDaemonEndpoints daemonEndpoints_;
    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    public boolean hasDaemonEndpoints() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    public io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDaemonEndpoints() {
      return daemonEndpoints_ == null
          ? io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance()
          : daemonEndpoints_;
    }
    /**
     *
     *
     * <pre>
     * Endpoints of daemons running on the Node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
     */
    public io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder
        getDaemonEndpointsOrBuilder() {
      return daemonEndpoints_ == null
          ? io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance()
          : daemonEndpoints_;
    }

    public static final int NODEINFO_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.NodeSystemInfo nodeInfo_;
    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    public boolean hasNodeInfo() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSystemInfo getNodeInfo() {
      return nodeInfo_ == null
          ? io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()
          : nodeInfo_;
    }
    /**
     *
     *
     * <pre>
     * Set of ids/uuids to uniquely identify the node.
     * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder getNodeInfoOrBuilder() {
      return nodeInfo_ == null
          ? io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()
          : nodeInfo_;
    }

    public static final int IMAGES_FIELD_NUMBER = 8;
    private java.util.List<io.kubernetes.client.proto.V1.ContainerImage> images_;
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ContainerImage> getImagesList() {
      return images_;
    }
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerImageOrBuilder>
        getImagesOrBuilderList() {
      return images_;
    }
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    public int getImagesCount() {
      return images_.size();
    }
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerImage getImages(int index) {
      return images_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of container images on this node
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerImageOrBuilder getImagesOrBuilder(int index) {
      return images_.get(index);
    }

    public static final int VOLUMESINUSE_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList volumesInUse_;
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList getVolumesInUseList() {
      return volumesInUse_;
    }
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    public int getVolumesInUseCount() {
      return volumesInUse_.size();
    }
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    public java.lang.String getVolumesInUse(int index) {
      return volumesInUse_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of attachable volumes in use (mounted) by the node.
     * +optional
     * </pre>
     *
     * <code>repeated string volumesInUse = 9;</code>
     */
    public com.google.protobuf.ByteString getVolumesInUseBytes(int index) {
      return volumesInUse_.getByteString(index);
    }

    public static final int VOLUMESATTACHED_FIELD_NUMBER = 10;
    private java.util.List<io.kubernetes.client.proto.V1.AttachedVolume> volumesAttached_;
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.AttachedVolume> getVolumesAttachedList() {
      return volumesAttached_;
    }
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>
        getVolumesAttachedOrBuilderList() {
      return volumesAttached_;
    }
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    public int getVolumesAttachedCount() {
      return volumesAttached_.size();
    }
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    public io.kubernetes.client.proto.V1.AttachedVolume getVolumesAttached(int index) {
      return volumesAttached_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of volumes that are attached to the node.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
     */
    public io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder getVolumesAttachedOrBuilder(
        int index) {
      return volumesAttached_.get(index);
    }

    public static final int CONFIG_FIELD_NUMBER = 11;
    private io.kubernetes.client.proto.V1.NodeConfigStatus config_;
    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    public boolean hasConfig() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigStatus getConfig() {
      return config_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance()
          : config_;
    }
    /**
     *
     *
     * <pre>
     * Status of the config assigned to the node via the dynamic Kubelet config feature.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
     */
    public io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder getConfigOrBuilder() {
      return config_ == null
          ? io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance()
          : config_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetCapacity(), CapacityDefaultEntryHolder.defaultEntry, 1);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetAllocatable(), AllocatableDefaultEntryHolder.defaultEntry, 2);
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, phase_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(4, conditions_.get(i));
      }
      for (int i = 0; i < addresses_.size(); i++) {
        output.writeMessage(5, addresses_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(6, getDaemonEndpoints());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(7, getNodeInfo());
      }
      for (int i = 0; i < images_.size(); i++) {
        output.writeMessage(8, images_.get(i));
      }
      for (int i = 0; i < volumesInUse_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, volumesInUse_.getRaw(i));
      }
      for (int i = 0; i < volumesAttached_.size(); i++) {
        output.writeMessage(10, volumesAttached_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(11, getConfig());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetCapacity().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            capacity__ =
                CapacityDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, capacity__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetAllocatable().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            allocatable__ =
                AllocatableDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, allocatable__);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, phase_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, conditions_.get(i));
      }
      for (int i = 0; i < addresses_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, addresses_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getDaemonEndpoints());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getNodeInfo());
      }
      for (int i = 0; i < images_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, images_.get(i));
      }
      {
        int dataSize = 0;
        for (int i = 0; i < volumesInUse_.size(); i++) {
          dataSize += computeStringSizeNoTag(volumesInUse_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getVolumesInUseList().size();
      }
      for (int i = 0; i < volumesAttached_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(10, volumesAttached_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getConfig());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeStatus other =
          (io.kubernetes.client.proto.V1.NodeStatus) obj;

      boolean result = true;
      result = result && internalGetCapacity().equals(other.internalGetCapacity());
      result = result && internalGetAllocatable().equals(other.internalGetAllocatable());
      result = result && (hasPhase() == other.hasPhase());
      if (hasPhase()) {
        result = result && getPhase().equals(other.getPhase());
      }
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && getAddressesList().equals(other.getAddressesList());
      result = result && (hasDaemonEndpoints() == other.hasDaemonEndpoints());
      if (hasDaemonEndpoints()) {
        result = result && getDaemonEndpoints().equals(other.getDaemonEndpoints());
      }
      result = result && (hasNodeInfo() == other.hasNodeInfo());
      if (hasNodeInfo()) {
        result = result && getNodeInfo().equals(other.getNodeInfo());
      }
      result = result && getImagesList().equals(other.getImagesList());
      result = result && getVolumesInUseList().equals(other.getVolumesInUseList());
      result = result && getVolumesAttachedList().equals(other.getVolumesAttachedList());
      result = result && (hasConfig() == other.hasConfig());
      if (hasConfig()) {
        result = result && getConfig().equals(other.getConfig());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetCapacity().getMap().isEmpty()) {
        hash = (37 * hash) + CAPACITY_FIELD_NUMBER;
        hash = (53 * hash) + internalGetCapacity().hashCode();
      }
      if (!internalGetAllocatable().getMap().isEmpty()) {
        hash = (37 * hash) + ALLOCATABLE_FIELD_NUMBER;
        hash = (53 * hash) + internalGetAllocatable().hashCode();
      }
      if (hasPhase()) {
        hash = (37 * hash) + PHASE_FIELD_NUMBER;
        hash = (53 * hash) + getPhase().hashCode();
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      if (getAddressesCount() > 0) {
        hash = (37 * hash) + ADDRESSES_FIELD_NUMBER;
        hash = (53 * hash) + getAddressesList().hashCode();
      }
      if (hasDaemonEndpoints()) {
        hash = (37 * hash) + DAEMONENDPOINTS_FIELD_NUMBER;
        hash = (53 * hash) + getDaemonEndpoints().hashCode();
      }
      if (hasNodeInfo()) {
        hash = (37 * hash) + NODEINFO_FIELD_NUMBER;
        hash = (53 * hash) + getNodeInfo().hashCode();
      }
      if (getImagesCount() > 0) {
        hash = (37 * hash) + IMAGES_FIELD_NUMBER;
        hash = (53 * hash) + getImagesList().hashCode();
      }
      if (getVolumesInUseCount() > 0) {
        hash = (37 * hash) + VOLUMESINUSE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumesInUseList().hashCode();
      }
      if (getVolumesAttachedCount() > 0) {
        hash = (37 * hash) + VOLUMESATTACHED_FIELD_NUMBER;
        hash = (53 * hash) + getVolumesAttachedList().hashCode();
      }
      if (hasConfig()) {
        hash = (37 * hash) + CONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeStatus is information about the current status of a node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeStatus)
        io.kubernetes.client.proto.V1.NodeStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeStatus_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetCapacity();
          case 2:
            return internalGetAllocatable();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableCapacity();
          case 2:
            return internalGetMutableAllocatable();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeStatus.class,
                io.kubernetes.client.proto.V1.NodeStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
          getAddressesFieldBuilder();
          getDaemonEndpointsFieldBuilder();
          getNodeInfoFieldBuilder();
          getImagesFieldBuilder();
          getVolumesAttachedFieldBuilder();
          getConfigFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableCapacity().clear();
        internalGetMutableAllocatable().clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          conditionsBuilder_.clear();
        }
        if (addressesBuilder_ == null) {
          addresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          addressesBuilder_.clear();
        }
        if (daemonEndpointsBuilder_ == null) {
          daemonEndpoints_ = null;
        } else {
          daemonEndpointsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (nodeInfoBuilder_ == null) {
          nodeInfo_ = null;
        } else {
          nodeInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (imagesBuilder_ == null) {
          images_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          imagesBuilder_.clear();
        }
        volumesInUse_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        if (volumesAttachedBuilder_ == null) {
          volumesAttached_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          volumesAttachedBuilder_.clear();
        }
        if (configBuilder_ == null) {
          config_ = null;
        } else {
          configBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeStatus build() {
        io.kubernetes.client.proto.V1.NodeStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeStatus buildPartial() {
        io.kubernetes.client.proto.V1.NodeStatus result =
            new io.kubernetes.client.proto.V1.NodeStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.capacity_ = internalGetCapacity();
        result.capacity_.makeImmutable();
        result.allocatable_ = internalGetAllocatable();
        result.allocatable_.makeImmutable();
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        if (addressesBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            addresses_ = java.util.Collections.unmodifiableList(addresses_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.addresses_ = addresses_;
        } else {
          result.addresses_ = addressesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000002;
        }
        if (daemonEndpointsBuilder_ == null) {
          result.daemonEndpoints_ = daemonEndpoints_;
        } else {
          result.daemonEndpoints_ = daemonEndpointsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000004;
        }
        if (nodeInfoBuilder_ == null) {
          result.nodeInfo_ = nodeInfo_;
        } else {
          result.nodeInfo_ = nodeInfoBuilder_.build();
        }
        if (imagesBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)) {
            images_ = java.util.Collections.unmodifiableList(images_);
            bitField0_ = (bitField0_ & ~0x00000080);
          }
          result.images_ = images_;
        } else {
          result.images_ = imagesBuilder_.build();
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          volumesInUse_ = volumesInUse_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000100);
        }
        result.volumesInUse_ = volumesInUse_;
        if (volumesAttachedBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            volumesAttached_ = java.util.Collections.unmodifiableList(volumesAttached_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.volumesAttached_ = volumesAttached_;
        } else {
          result.volumesAttached_ = volumesAttachedBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000008;
        }
        if (configBuilder_ == null) {
          result.config_ = config_;
        } else {
          result.config_ = configBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeStatus other) {
        if (other == io.kubernetes.client.proto.V1.NodeStatus.getDefaultInstance()) return this;
        internalGetMutableCapacity().mergeFrom(other.internalGetCapacity());
        internalGetMutableAllocatable().mergeFrom(other.internalGetAllocatable());
        if (other.hasPhase()) {
          bitField0_ |= 0x00000004;
          phase_ = other.phase_;
          onChanged();
        }
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000008);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        if (addressesBuilder_ == null) {
          if (!other.addresses_.isEmpty()) {
            if (addresses_.isEmpty()) {
              addresses_ = other.addresses_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureAddressesIsMutable();
              addresses_.addAll(other.addresses_);
            }
            onChanged();
          }
        } else {
          if (!other.addresses_.isEmpty()) {
            if (addressesBuilder_.isEmpty()) {
              addressesBuilder_.dispose();
              addressesBuilder_ = null;
              addresses_ = other.addresses_;
              bitField0_ = (bitField0_ & ~0x00000010);
              addressesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getAddressesFieldBuilder()
                      : null;
            } else {
              addressesBuilder_.addAllMessages(other.addresses_);
            }
          }
        }
        if (other.hasDaemonEndpoints()) {
          mergeDaemonEndpoints(other.getDaemonEndpoints());
        }
        if (other.hasNodeInfo()) {
          mergeNodeInfo(other.getNodeInfo());
        }
        if (imagesBuilder_ == null) {
          if (!other.images_.isEmpty()) {
            if (images_.isEmpty()) {
              images_ = other.images_;
              bitField0_ = (bitField0_ & ~0x00000080);
            } else {
              ensureImagesIsMutable();
              images_.addAll(other.images_);
            }
            onChanged();
          }
        } else {
          if (!other.images_.isEmpty()) {
            if (imagesBuilder_.isEmpty()) {
              imagesBuilder_.dispose();
              imagesBuilder_ = null;
              images_ = other.images_;
              bitField0_ = (bitField0_ & ~0x00000080);
              imagesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getImagesFieldBuilder()
                      : null;
            } else {
              imagesBuilder_.addAllMessages(other.images_);
            }
          }
        }
        if (!other.volumesInUse_.isEmpty()) {
          if (volumesInUse_.isEmpty()) {
            volumesInUse_ = other.volumesInUse_;
            bitField0_ = (bitField0_ & ~0x00000100);
          } else {
            ensureVolumesInUseIsMutable();
            volumesInUse_.addAll(other.volumesInUse_);
          }
          onChanged();
        }
        if (volumesAttachedBuilder_ == null) {
          if (!other.volumesAttached_.isEmpty()) {
            if (volumesAttached_.isEmpty()) {
              volumesAttached_ = other.volumesAttached_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureVolumesAttachedIsMutable();
              volumesAttached_.addAll(other.volumesAttached_);
            }
            onChanged();
          }
        } else {
          if (!other.volumesAttached_.isEmpty()) {
            if (volumesAttachedBuilder_.isEmpty()) {
              volumesAttachedBuilder_.dispose();
              volumesAttachedBuilder_ = null;
              volumesAttached_ = other.volumesAttached_;
              bitField0_ = (bitField0_ & ~0x00000200);
              volumesAttachedBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getVolumesAttachedFieldBuilder()
                      : null;
            } else {
              volumesAttachedBuilder_.addAllMessages(other.volumesAttached_);
            }
          }
        }
        if (other.hasConfig()) {
          mergeConfig(other.getConfig());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          capacity_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetCapacity() {
        if (capacity_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              CapacityDefaultEntryHolder.defaultEntry);
        }
        return capacity_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableCapacity() {
        onChanged();
        ;
        if (capacity_ == null) {
          capacity_ =
              com.google.protobuf.MapField.newMapField(CapacityDefaultEntryHolder.defaultEntry);
        }
        if (!capacity_.isMutable()) {
          capacity_ = capacity_.copy();
        }
        return capacity_;
      }

      public int getCapacityCount() {
        return internalGetCapacity().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public boolean containsCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetCapacity().getMap().containsKey(key);
      }
      /** Use {@link #getCapacityMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacity() {
        return getCapacityMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacityMap() {
        return internalGetCapacity().getMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearCapacity() {
        internalGetMutableCapacity().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder removeCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableCapacity() {
        return internalGetMutableCapacity().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putCapacity(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Capacity represents the total resources of a node.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putAllCapacity(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableCapacity().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          allocatable_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetAllocatable() {
        if (allocatable_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              AllocatableDefaultEntryHolder.defaultEntry);
        }
        return allocatable_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableAllocatable() {
        onChanged();
        ;
        if (allocatable_ == null) {
          allocatable_ =
              com.google.protobuf.MapField.newMapField(AllocatableDefaultEntryHolder.defaultEntry);
        }
        if (!allocatable_.isMutable()) {
          allocatable_ = allocatable_.copy();
        }
        return allocatable_;
      }

      public int getAllocatableCount() {
        return internalGetAllocatable().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public boolean containsAllocatable(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetAllocatable().getMap().containsKey(key);
      }
      /** Use {@link #getAllocatableMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getAllocatable() {
        return getAllocatableMap();
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getAllocatableMap() {
        return internalGetAllocatable().getMap();
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getAllocatableOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetAllocatable().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getAllocatableOrThrow(
          java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetAllocatable().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearAllocatable() {
        internalGetMutableAllocatable().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public Builder removeAllocatable(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableAllocatable().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableAllocatable() {
        return internalGetMutableAllocatable().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public Builder putAllocatable(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableAllocatable().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Allocatable represents the resources of a node that are available for scheduling.
       * Defaults to Capacity.
       * +optional
       * </pre>
       *
       * <code>
       * map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; allocatable = 2;
       * </code>
       */
      public Builder putAllAllocatable(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableAllocatable().getMutableMap().putAll(values);
        return this;
      }

      private java.lang.Object phase_ = "";
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public java.lang.String getPhase() {
        java.lang.Object ref = phase_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phase_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public com.google.protobuf.ByteString getPhaseBytes() {
        java.lang.Object ref = phase_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          phase_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public Builder setPhase(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000004);
        phase_ = getDefaultInstance().getPhase();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodePhase is the recently observed lifecycle phase of the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#phase
       * The field is never populated, and now is deprecated.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 3;</code>
       */
      public Builder setPhaseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        phase_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.NodeCondition> conditions_ =
          java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          conditions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeCondition>(conditions_);
          bitField0_ |= 0x00000008;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeCondition,
              io.kubernetes.client.proto.V1.NodeCondition.Builder,
              io.kubernetes.client.proto.V1.NodeConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public io.kubernetes.client.proto.V1.NodeCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder setConditions(int index, io.kubernetes.client.proto.V1.NodeCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.NodeCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder addConditions(io.kubernetes.client.proto.V1.NodeCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder addConditions(int index, io.kubernetes.client.proto.V1.NodeCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.NodeCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.NodeCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.NodeCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public io.kubernetes.client.proto.V1.NodeCondition.Builder getConditionsBuilder(int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConditionOrBuilder getConditionsOrBuilder(
          int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.NodeConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public io.kubernetes.client.proto.V1.NodeCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.NodeCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public io.kubernetes.client.proto.V1.NodeCondition.Builder addConditionsBuilder(int index) {
        return getConditionsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.NodeCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Conditions is an array of current observed node conditions.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#condition
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeCondition conditions = 4;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeCondition.Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeCondition,
              io.kubernetes.client.proto.V1.NodeCondition.Builder,
              io.kubernetes.client.proto.V1.NodeConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeCondition,
                  io.kubernetes.client.proto.V1.NodeCondition.Builder,
                  io.kubernetes.client.proto.V1.NodeConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.NodeAddress> addresses_ =
          java.util.Collections.emptyList();

      private void ensureAddressesIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          addresses_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.NodeAddress>(addresses_);
          bitField0_ |= 0x00000010;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeAddress,
              io.kubernetes.client.proto.V1.NodeAddress.Builder,
              io.kubernetes.client.proto.V1.NodeAddressOrBuilder>
          addressesBuilder_;

      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeAddress> getAddressesList() {
        if (addressesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(addresses_);
        } else {
          return addressesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public int getAddressesCount() {
        if (addressesBuilder_ == null) {
          return addresses_.size();
        } else {
          return addressesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAddress getAddresses(int index) {
        if (addressesBuilder_ == null) {
          return addresses_.get(index);
        } else {
          return addressesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder setAddresses(int index, io.kubernetes.client.proto.V1.NodeAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.set(index, value);
          onChanged();
        } else {
          addressesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder setAddresses(
          int index, io.kubernetes.client.proto.V1.NodeAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.set(index, builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder addAddresses(io.kubernetes.client.proto.V1.NodeAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.add(value);
          onChanged();
        } else {
          addressesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder addAddresses(int index, io.kubernetes.client.proto.V1.NodeAddress value) {
        if (addressesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureAddressesIsMutable();
          addresses_.add(index, value);
          onChanged();
        } else {
          addressesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder addAddresses(
          io.kubernetes.client.proto.V1.NodeAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.add(builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder addAddresses(
          int index, io.kubernetes.client.proto.V1.NodeAddress.Builder builderForValue) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.add(index, builderForValue.build());
          onChanged();
        } else {
          addressesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder addAllAddresses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.NodeAddress> values) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, addresses_);
          onChanged();
        } else {
          addressesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder clearAddresses() {
        if (addressesBuilder_ == null) {
          addresses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          addressesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public Builder removeAddresses(int index) {
        if (addressesBuilder_ == null) {
          ensureAddressesIsMutable();
          addresses_.remove(index);
          onChanged();
        } else {
          addressesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAddress.Builder getAddressesBuilder(int index) {
        return getAddressesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAddressOrBuilder getAddressesOrBuilder(int index) {
        if (addressesBuilder_ == null) {
          return addresses_.get(index);
        } else {
          return addressesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.NodeAddressOrBuilder>
          getAddressesOrBuilderList() {
        if (addressesBuilder_ != null) {
          return addressesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(addresses_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAddress.Builder addAddressesBuilder() {
        return getAddressesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.NodeAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NodeAddress.Builder addAddressesBuilder(int index) {
        return getAddressesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.NodeAddress.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of addresses reachable to the node.
       * Queried from cloud provider, if available.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#addresses
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.NodeAddress addresses = 5;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.NodeAddress.Builder>
          getAddressesBuilderList() {
        return getAddressesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeAddress,
              io.kubernetes.client.proto.V1.NodeAddress.Builder,
              io.kubernetes.client.proto.V1.NodeAddressOrBuilder>
          getAddressesFieldBuilder() {
        if (addressesBuilder_ == null) {
          addressesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeAddress,
                  io.kubernetes.client.proto.V1.NodeAddress.Builder,
                  io.kubernetes.client.proto.V1.NodeAddressOrBuilder>(
                  addresses_,
                  ((bitField0_ & 0x00000010) == 0x00000010),
                  getParentForChildren(),
                  isClean());
          addresses_ = null;
        }
        return addressesBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeDaemonEndpoints daemonEndpoints_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints,
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder,
              io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder>
          daemonEndpointsBuilder_;
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public boolean hasDaemonEndpoints() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints getDaemonEndpoints() {
        if (daemonEndpointsBuilder_ == null) {
          return daemonEndpoints_ == null
              ? io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance()
              : daemonEndpoints_;
        } else {
          return daemonEndpointsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public Builder setDaemonEndpoints(io.kubernetes.client.proto.V1.NodeDaemonEndpoints value) {
        if (daemonEndpointsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          daemonEndpoints_ = value;
          onChanged();
        } else {
          daemonEndpointsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public Builder setDaemonEndpoints(
          io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder builderForValue) {
        if (daemonEndpointsBuilder_ == null) {
          daemonEndpoints_ = builderForValue.build();
          onChanged();
        } else {
          daemonEndpointsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public Builder mergeDaemonEndpoints(io.kubernetes.client.proto.V1.NodeDaemonEndpoints value) {
        if (daemonEndpointsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && daemonEndpoints_ != null
              && daemonEndpoints_
                  != io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance()) {
            daemonEndpoints_ =
                io.kubernetes.client.proto.V1.NodeDaemonEndpoints.newBuilder(daemonEndpoints_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            daemonEndpoints_ = value;
          }
          onChanged();
        } else {
          daemonEndpointsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public Builder clearDaemonEndpoints() {
        if (daemonEndpointsBuilder_ == null) {
          daemonEndpoints_ = null;
          onChanged();
        } else {
          daemonEndpointsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder getDaemonEndpointsBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getDaemonEndpointsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      public io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder
          getDaemonEndpointsOrBuilder() {
        if (daemonEndpointsBuilder_ != null) {
          return daemonEndpointsBuilder_.getMessageOrBuilder();
        } else {
          return daemonEndpoints_ == null
              ? io.kubernetes.client.proto.V1.NodeDaemonEndpoints.getDefaultInstance()
              : daemonEndpoints_;
        }
      }
      /**
       *
       *
       * <pre>
       * Endpoints of daemons running on the Node.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeDaemonEndpoints daemonEndpoints = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints,
              io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder,
              io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder>
          getDaemonEndpointsFieldBuilder() {
        if (daemonEndpointsBuilder_ == null) {
          daemonEndpointsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeDaemonEndpoints,
                  io.kubernetes.client.proto.V1.NodeDaemonEndpoints.Builder,
                  io.kubernetes.client.proto.V1.NodeDaemonEndpointsOrBuilder>(
                  getDaemonEndpoints(), getParentForChildren(), isClean());
          daemonEndpoints_ = null;
        }
        return daemonEndpointsBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeSystemInfo nodeInfo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSystemInfo,
              io.kubernetes.client.proto.V1.NodeSystemInfo.Builder,
              io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder>
          nodeInfoBuilder_;
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public boolean hasNodeInfo() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSystemInfo getNodeInfo() {
        if (nodeInfoBuilder_ == null) {
          return nodeInfo_ == null
              ? io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()
              : nodeInfo_;
        } else {
          return nodeInfoBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public Builder setNodeInfo(io.kubernetes.client.proto.V1.NodeSystemInfo value) {
        if (nodeInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nodeInfo_ = value;
          onChanged();
        } else {
          nodeInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public Builder setNodeInfo(
          io.kubernetes.client.proto.V1.NodeSystemInfo.Builder builderForValue) {
        if (nodeInfoBuilder_ == null) {
          nodeInfo_ = builderForValue.build();
          onChanged();
        } else {
          nodeInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public Builder mergeNodeInfo(io.kubernetes.client.proto.V1.NodeSystemInfo value) {
        if (nodeInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && nodeInfo_ != null
              && nodeInfo_ != io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()) {
            nodeInfo_ =
                io.kubernetes.client.proto.V1.NodeSystemInfo.newBuilder(nodeInfo_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nodeInfo_ = value;
          }
          onChanged();
        } else {
          nodeInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public Builder clearNodeInfo() {
        if (nodeInfoBuilder_ == null) {
          nodeInfo_ = null;
          onChanged();
        } else {
          nodeInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSystemInfo.Builder getNodeInfoBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getNodeInfoFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder getNodeInfoOrBuilder() {
        if (nodeInfoBuilder_ != null) {
          return nodeInfoBuilder_.getMessageOrBuilder();
        } else {
          return nodeInfo_ == null
              ? io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()
              : nodeInfo_;
        }
      }
      /**
       *
       *
       * <pre>
       * Set of ids/uuids to uniquely identify the node.
       * More info: https://kubernetes.io/docs/concepts/nodes/node/#info
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSystemInfo nodeInfo = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSystemInfo,
              io.kubernetes.client.proto.V1.NodeSystemInfo.Builder,
              io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder>
          getNodeInfoFieldBuilder() {
        if (nodeInfoBuilder_ == null) {
          nodeInfoBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSystemInfo,
                  io.kubernetes.client.proto.V1.NodeSystemInfo.Builder,
                  io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder>(
                  getNodeInfo(), getParentForChildren(), isClean());
          nodeInfo_ = null;
        }
        return nodeInfoBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ContainerImage> images_ =
          java.util.Collections.emptyList();

      private void ensureImagesIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          images_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerImage>(images_);
          bitField0_ |= 0x00000080;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerImage,
              io.kubernetes.client.proto.V1.ContainerImage.Builder,
              io.kubernetes.client.proto.V1.ContainerImageOrBuilder>
          imagesBuilder_;

      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerImage> getImagesList() {
        if (imagesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(images_);
        } else {
          return imagesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public int getImagesCount() {
        if (imagesBuilder_ == null) {
          return images_.size();
        } else {
          return imagesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerImage getImages(int index) {
        if (imagesBuilder_ == null) {
          return images_.get(index);
        } else {
          return imagesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder setImages(int index, io.kubernetes.client.proto.V1.ContainerImage value) {
        if (imagesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagesIsMutable();
          images_.set(index, value);
          onChanged();
        } else {
          imagesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder setImages(
          int index, io.kubernetes.client.proto.V1.ContainerImage.Builder builderForValue) {
        if (imagesBuilder_ == null) {
          ensureImagesIsMutable();
          images_.set(index, builderForValue.build());
          onChanged();
        } else {
          imagesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder addImages(io.kubernetes.client.proto.V1.ContainerImage value) {
        if (imagesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagesIsMutable();
          images_.add(value);
          onChanged();
        } else {
          imagesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder addImages(int index, io.kubernetes.client.proto.V1.ContainerImage value) {
        if (imagesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagesIsMutable();
          images_.add(index, value);
          onChanged();
        } else {
          imagesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder addImages(
          io.kubernetes.client.proto.V1.ContainerImage.Builder builderForValue) {
        if (imagesBuilder_ == null) {
          ensureImagesIsMutable();
          images_.add(builderForValue.build());
          onChanged();
        } else {
          imagesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder addImages(
          int index, io.kubernetes.client.proto.V1.ContainerImage.Builder builderForValue) {
        if (imagesBuilder_ == null) {
          ensureImagesIsMutable();
          images_.add(index, builderForValue.build());
          onChanged();
        } else {
          imagesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder addAllImages(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ContainerImage> values) {
        if (imagesBuilder_ == null) {
          ensureImagesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, images_);
          onChanged();
        } else {
          imagesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder clearImages() {
        if (imagesBuilder_ == null) {
          images_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000080);
          onChanged();
        } else {
          imagesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public Builder removeImages(int index) {
        if (imagesBuilder_ == null) {
          ensureImagesIsMutable();
          images_.remove(index);
          onChanged();
        } else {
          imagesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerImage.Builder getImagesBuilder(int index) {
        return getImagesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerImageOrBuilder getImagesOrBuilder(int index) {
        if (imagesBuilder_ == null) {
          return images_.get(index);
        } else {
          return imagesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerImageOrBuilder>
          getImagesOrBuilderList() {
        if (imagesBuilder_ != null) {
          return imagesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(images_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerImage.Builder addImagesBuilder() {
        return getImagesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ContainerImage.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerImage.Builder addImagesBuilder(int index) {
        return getImagesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ContainerImage.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of container images on this node
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerImage images = 8;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerImage.Builder>
          getImagesBuilderList() {
        return getImagesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerImage,
              io.kubernetes.client.proto.V1.ContainerImage.Builder,
              io.kubernetes.client.proto.V1.ContainerImageOrBuilder>
          getImagesFieldBuilder() {
        if (imagesBuilder_ == null) {
          imagesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerImage,
                  io.kubernetes.client.proto.V1.ContainerImage.Builder,
                  io.kubernetes.client.proto.V1.ContainerImageOrBuilder>(
                  images_,
                  ((bitField0_ & 0x00000080) == 0x00000080),
                  getParentForChildren(),
                  isClean());
          images_ = null;
        }
        return imagesBuilder_;
      }

      private com.google.protobuf.LazyStringList volumesInUse_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureVolumesInUseIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          volumesInUse_ = new com.google.protobuf.LazyStringArrayList(volumesInUse_);
          bitField0_ |= 0x00000100;
        }
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList getVolumesInUseList() {
        return volumesInUse_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public int getVolumesInUseCount() {
        return volumesInUse_.size();
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public java.lang.String getVolumesInUse(int index) {
        return volumesInUse_.get(index);
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public com.google.protobuf.ByteString getVolumesInUseBytes(int index) {
        return volumesInUse_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public Builder setVolumesInUse(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVolumesInUseIsMutable();
        volumesInUse_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public Builder addVolumesInUse(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVolumesInUseIsMutable();
        volumesInUse_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public Builder addAllVolumesInUse(java.lang.Iterable<java.lang.String> values) {
        ensureVolumesInUseIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, volumesInUse_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public Builder clearVolumesInUse() {
        volumesInUse_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000100);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of attachable volumes in use (mounted) by the node.
       * +optional
       * </pre>
       *
       * <code>repeated string volumesInUse = 9;</code>
       */
      public Builder addVolumesInUseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVolumesInUseIsMutable();
        volumesInUse_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.AttachedVolume> volumesAttached_ =
          java.util.Collections.emptyList();

      private void ensureVolumesAttachedIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          volumesAttached_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.AttachedVolume>(
                  volumesAttached_);
          bitField0_ |= 0x00000200;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.AttachedVolume,
              io.kubernetes.client.proto.V1.AttachedVolume.Builder,
              io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>
          volumesAttachedBuilder_;

      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.AttachedVolume> getVolumesAttachedList() {
        if (volumesAttachedBuilder_ == null) {
          return java.util.Collections.unmodifiableList(volumesAttached_);
        } else {
          return volumesAttachedBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public int getVolumesAttachedCount() {
        if (volumesAttachedBuilder_ == null) {
          return volumesAttached_.size();
        } else {
          return volumesAttachedBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public io.kubernetes.client.proto.V1.AttachedVolume getVolumesAttached(int index) {
        if (volumesAttachedBuilder_ == null) {
          return volumesAttached_.get(index);
        } else {
          return volumesAttachedBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder setVolumesAttached(
          int index, io.kubernetes.client.proto.V1.AttachedVolume value) {
        if (volumesAttachedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesAttachedIsMutable();
          volumesAttached_.set(index, value);
          onChanged();
        } else {
          volumesAttachedBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder setVolumesAttached(
          int index, io.kubernetes.client.proto.V1.AttachedVolume.Builder builderForValue) {
        if (volumesAttachedBuilder_ == null) {
          ensureVolumesAttachedIsMutable();
          volumesAttached_.set(index, builderForValue.build());
          onChanged();
        } else {
          volumesAttachedBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder addVolumesAttached(io.kubernetes.client.proto.V1.AttachedVolume value) {
        if (volumesAttachedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesAttachedIsMutable();
          volumesAttached_.add(value);
          onChanged();
        } else {
          volumesAttachedBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder addVolumesAttached(
          int index, io.kubernetes.client.proto.V1.AttachedVolume value) {
        if (volumesAttachedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesAttachedIsMutable();
          volumesAttached_.add(index, value);
          onChanged();
        } else {
          volumesAttachedBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder addVolumesAttached(
          io.kubernetes.client.proto.V1.AttachedVolume.Builder builderForValue) {
        if (volumesAttachedBuilder_ == null) {
          ensureVolumesAttachedIsMutable();
          volumesAttached_.add(builderForValue.build());
          onChanged();
        } else {
          volumesAttachedBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder addVolumesAttached(
          int index, io.kubernetes.client.proto.V1.AttachedVolume.Builder builderForValue) {
        if (volumesAttachedBuilder_ == null) {
          ensureVolumesAttachedIsMutable();
          volumesAttached_.add(index, builderForValue.build());
          onChanged();
        } else {
          volumesAttachedBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder addAllVolumesAttached(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.AttachedVolume> values) {
        if (volumesAttachedBuilder_ == null) {
          ensureVolumesAttachedIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, volumesAttached_);
          onChanged();
        } else {
          volumesAttachedBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder clearVolumesAttached() {
        if (volumesAttachedBuilder_ == null) {
          volumesAttached_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          volumesAttachedBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public Builder removeVolumesAttached(int index) {
        if (volumesAttachedBuilder_ == null) {
          ensureVolumesAttachedIsMutable();
          volumesAttached_.remove(index);
          onChanged();
        } else {
          volumesAttachedBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public io.kubernetes.client.proto.V1.AttachedVolume.Builder getVolumesAttachedBuilder(
          int index) {
        return getVolumesAttachedFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder getVolumesAttachedOrBuilder(
          int index) {
        if (volumesAttachedBuilder_ == null) {
          return volumesAttached_.get(index);
        } else {
          return volumesAttachedBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>
          getVolumesAttachedOrBuilderList() {
        if (volumesAttachedBuilder_ != null) {
          return volumesAttachedBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(volumesAttached_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public io.kubernetes.client.proto.V1.AttachedVolume.Builder addVolumesAttachedBuilder() {
        return getVolumesAttachedFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.AttachedVolume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public io.kubernetes.client.proto.V1.AttachedVolume.Builder addVolumesAttachedBuilder(
          int index) {
        return getVolumesAttachedFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.AttachedVolume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of volumes that are attached to the node.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.AttachedVolume volumesAttached = 10;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.AttachedVolume.Builder>
          getVolumesAttachedBuilderList() {
        return getVolumesAttachedFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.AttachedVolume,
              io.kubernetes.client.proto.V1.AttachedVolume.Builder,
              io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>
          getVolumesAttachedFieldBuilder() {
        if (volumesAttachedBuilder_ == null) {
          volumesAttachedBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AttachedVolume,
                  io.kubernetes.client.proto.V1.AttachedVolume.Builder,
                  io.kubernetes.client.proto.V1.AttachedVolumeOrBuilder>(
                  volumesAttached_,
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          volumesAttached_ = null;
        }
        return volumesAttachedBuilder_;
      }

      private io.kubernetes.client.proto.V1.NodeConfigStatus config_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigStatus,
              io.kubernetes.client.proto.V1.NodeConfigStatus.Builder,
              io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder>
          configBuilder_;
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public boolean hasConfig() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigStatus getConfig() {
        if (configBuilder_ == null) {
          return config_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance()
              : config_;
        } else {
          return configBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public Builder setConfig(io.kubernetes.client.proto.V1.NodeConfigStatus value) {
        if (configBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          config_ = value;
          onChanged();
        } else {
          configBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public Builder setConfig(
          io.kubernetes.client.proto.V1.NodeConfigStatus.Builder builderForValue) {
        if (configBuilder_ == null) {
          config_ = builderForValue.build();
          onChanged();
        } else {
          configBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public Builder mergeConfig(io.kubernetes.client.proto.V1.NodeConfigStatus value) {
        if (configBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)
              && config_ != null
              && config_ != io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance()) {
            config_ =
                io.kubernetes.client.proto.V1.NodeConfigStatus.newBuilder(config_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            config_ = value;
          }
          onChanged();
        } else {
          configBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public Builder clearConfig() {
        if (configBuilder_ == null) {
          config_ = null;
          onChanged();
        } else {
          configBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigStatus.Builder getConfigBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getConfigFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      public io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder getConfigOrBuilder() {
        if (configBuilder_ != null) {
          return configBuilder_.getMessageOrBuilder();
        } else {
          return config_ == null
              ? io.kubernetes.client.proto.V1.NodeConfigStatus.getDefaultInstance()
              : config_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the config assigned to the node via the dynamic Kubelet config feature.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeConfigStatus config = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeConfigStatus,
              io.kubernetes.client.proto.V1.NodeConfigStatus.Builder,
              io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder>
          getConfigFieldBuilder() {
        if (configBuilder_ == null) {
          configBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeConfigStatus,
                  io.kubernetes.client.proto.V1.NodeConfigStatus.Builder,
                  io.kubernetes.client.proto.V1.NodeConfigStatusOrBuilder>(
                  getConfig(), getParentForChildren(), isClean());
          config_ = null;
        }
        return configBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeStatus)
    private static final io.kubernetes.client.proto.V1.NodeStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeStatus();
    }

    public static io.kubernetes.client.proto.V1.NodeStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeStatus> PARSER =
        new com.google.protobuf.AbstractParser<NodeStatus>() {
          @java.lang.Override
          public NodeStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface NodeSystemInfoOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.NodeSystemInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    boolean hasMachineID();
    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    java.lang.String getMachineID();
    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    com.google.protobuf.ByteString getMachineIDBytes();

    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    boolean hasSystemUUID();
    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    java.lang.String getSystemUUID();
    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    com.google.protobuf.ByteString getSystemUUIDBytes();

    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    boolean hasBootID();
    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    java.lang.String getBootID();
    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    com.google.protobuf.ByteString getBootIDBytes();

    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    boolean hasKernelVersion();
    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    java.lang.String getKernelVersion();
    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    com.google.protobuf.ByteString getKernelVersionBytes();

    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    boolean hasOsImage();
    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    java.lang.String getOsImage();
    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    com.google.protobuf.ByteString getOsImageBytes();

    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    boolean hasContainerRuntimeVersion();
    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    java.lang.String getContainerRuntimeVersion();
    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    com.google.protobuf.ByteString getContainerRuntimeVersionBytes();

    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    boolean hasKubeletVersion();
    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    java.lang.String getKubeletVersion();
    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    com.google.protobuf.ByteString getKubeletVersionBytes();

    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    boolean hasKubeProxyVersion();
    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    java.lang.String getKubeProxyVersion();
    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    com.google.protobuf.ByteString getKubeProxyVersionBytes();

    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    boolean hasOperatingSystem();
    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    java.lang.String getOperatingSystem();
    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    com.google.protobuf.ByteString getOperatingSystemBytes();

    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    boolean hasArchitecture();
    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    java.lang.String getArchitecture();
    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    com.google.protobuf.ByteString getArchitectureBytes();
  }
  /**
   *
   *
   * <pre>
   * NodeSystemInfo is a set of ids/uuids to uniquely identify the node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.NodeSystemInfo}
   */
  public static final class NodeSystemInfo extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.NodeSystemInfo)
      NodeSystemInfoOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use NodeSystemInfo.newBuilder() to construct.
    private NodeSystemInfo(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private NodeSystemInfo() {
      machineID_ = "";
      systemUUID_ = "";
      bootID_ = "";
      kernelVersion_ = "";
      osImage_ = "";
      containerRuntimeVersion_ = "";
      kubeletVersion_ = "";
      kubeProxyVersion_ = "";
      operatingSystem_ = "";
      architecture_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private NodeSystemInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                machineID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                systemUUID_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                bootID_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                kernelVersion_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                osImage_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                containerRuntimeVersion_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                kubeletVersion_ = bs;
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                kubeProxyVersion_ = bs;
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                operatingSystem_ = bs;
                break;
              }
            case 82:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000200;
                architecture_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_NodeSystemInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.NodeSystemInfo.class,
              io.kubernetes.client.proto.V1.NodeSystemInfo.Builder.class);
    }

    private int bitField0_;
    public static final int MACHINEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object machineID_;
    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    public boolean hasMachineID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    public java.lang.String getMachineID() {
      java.lang.Object ref = machineID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          machineID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * MachineID reported by the node. For unique machine identification
     * in the cluster this field is preferred. Learn more from man(5)
     * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
     * </pre>
     *
     * <code>optional string machineID = 1;</code>
     */
    public com.google.protobuf.ByteString getMachineIDBytes() {
      java.lang.Object ref = machineID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        machineID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYSTEMUUID_FIELD_NUMBER = 2;
    private volatile java.lang.Object systemUUID_;
    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    public boolean hasSystemUUID() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    public java.lang.String getSystemUUID() {
      java.lang.Object ref = systemUUID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          systemUUID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * SystemUUID reported by the node. For unique machine identification
     * MachineID is preferred. This field is specific to Red Hat hosts
     * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
     * </pre>
     *
     * <code>optional string systemUUID = 2;</code>
     */
    public com.google.protobuf.ByteString getSystemUUIDBytes() {
      java.lang.Object ref = systemUUID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        systemUUID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BOOTID_FIELD_NUMBER = 3;
    private volatile java.lang.Object bootID_;
    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    public boolean hasBootID() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    public java.lang.String getBootID() {
      java.lang.Object ref = bootID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          bootID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Boot ID reported by the node.
     * </pre>
     *
     * <code>optional string bootID = 3;</code>
     */
    public com.google.protobuf.ByteString getBootIDBytes() {
      java.lang.Object ref = bootID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        bootID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KERNELVERSION_FIELD_NUMBER = 4;
    private volatile java.lang.Object kernelVersion_;
    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    public boolean hasKernelVersion() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    public java.lang.String getKernelVersion() {
      java.lang.Object ref = kernelVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kernelVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
     * </pre>
     *
     * <code>optional string kernelVersion = 4;</code>
     */
    public com.google.protobuf.ByteString getKernelVersionBytes() {
      java.lang.Object ref = kernelVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kernelVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OSIMAGE_FIELD_NUMBER = 5;
    private volatile java.lang.Object osImage_;
    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    public boolean hasOsImage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    public java.lang.String getOsImage() {
      java.lang.Object ref = osImage_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          osImage_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
     * </pre>
     *
     * <code>optional string osImage = 5;</code>
     */
    public com.google.protobuf.ByteString getOsImageBytes() {
      java.lang.Object ref = osImage_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        osImage_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONTAINERRUNTIMEVERSION_FIELD_NUMBER = 6;
    private volatile java.lang.Object containerRuntimeVersion_;
    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    public boolean hasContainerRuntimeVersion() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    public java.lang.String getContainerRuntimeVersion() {
      java.lang.Object ref = containerRuntimeVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          containerRuntimeVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
     * </pre>
     *
     * <code>optional string containerRuntimeVersion = 6;</code>
     */
    public com.google.protobuf.ByteString getContainerRuntimeVersionBytes() {
      java.lang.Object ref = containerRuntimeVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        containerRuntimeVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KUBELETVERSION_FIELD_NUMBER = 7;
    private volatile java.lang.Object kubeletVersion_;
    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    public boolean hasKubeletVersion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    public java.lang.String getKubeletVersion() {
      java.lang.Object ref = kubeletVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kubeletVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Kubelet Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeletVersion = 7;</code>
     */
    public com.google.protobuf.ByteString getKubeletVersionBytes() {
      java.lang.Object ref = kubeletVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kubeletVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KUBEPROXYVERSION_FIELD_NUMBER = 8;
    private volatile java.lang.Object kubeProxyVersion_;
    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    public boolean hasKubeProxyVersion() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    public java.lang.String getKubeProxyVersion() {
      java.lang.Object ref = kubeProxyVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kubeProxyVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * KubeProxy Version reported by the node.
     * </pre>
     *
     * <code>optional string kubeProxyVersion = 8;</code>
     */
    public com.google.protobuf.ByteString getKubeProxyVersionBytes() {
      java.lang.Object ref = kubeProxyVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kubeProxyVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATINGSYSTEM_FIELD_NUMBER = 9;
    private volatile java.lang.Object operatingSystem_;
    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    public boolean hasOperatingSystem() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    public java.lang.String getOperatingSystem() {
      java.lang.Object ref = operatingSystem_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          operatingSystem_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The Operating System reported by the node
     * </pre>
     *
     * <code>optional string operatingSystem = 9;</code>
     */
    public com.google.protobuf.ByteString getOperatingSystemBytes() {
      java.lang.Object ref = operatingSystem_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        operatingSystem_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ARCHITECTURE_FIELD_NUMBER = 10;
    private volatile java.lang.Object architecture_;
    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    public boolean hasArchitecture() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    public java.lang.String getArchitecture() {
      java.lang.Object ref = architecture_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          architecture_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The Architecture reported by the node
     * </pre>
     *
     * <code>optional string architecture = 10;</code>
     */
    public com.google.protobuf.ByteString getArchitectureBytes() {
      java.lang.Object ref = architecture_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        architecture_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, machineID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, systemUUID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, bootID_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, kernelVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, osImage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, containerRuntimeVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, kubeletVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, kubeProxyVersion_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, operatingSystem_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, architecture_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, machineID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, systemUUID_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, bootID_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, kernelVersion_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, osImage_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size +=
            com.google.protobuf.GeneratedMessageV3.computeStringSize(6, containerRuntimeVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, kubeletVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, kubeProxyVersion_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, operatingSystem_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, architecture_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.NodeSystemInfo)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.NodeSystemInfo other =
          (io.kubernetes.client.proto.V1.NodeSystemInfo) obj;

      boolean result = true;
      result = result && (hasMachineID() == other.hasMachineID());
      if (hasMachineID()) {
        result = result && getMachineID().equals(other.getMachineID());
      }
      result = result && (hasSystemUUID() == other.hasSystemUUID());
      if (hasSystemUUID()) {
        result = result && getSystemUUID().equals(other.getSystemUUID());
      }
      result = result && (hasBootID() == other.hasBootID());
      if (hasBootID()) {
        result = result && getBootID().equals(other.getBootID());
      }
      result = result && (hasKernelVersion() == other.hasKernelVersion());
      if (hasKernelVersion()) {
        result = result && getKernelVersion().equals(other.getKernelVersion());
      }
      result = result && (hasOsImage() == other.hasOsImage());
      if (hasOsImage()) {
        result = result && getOsImage().equals(other.getOsImage());
      }
      result = result && (hasContainerRuntimeVersion() == other.hasContainerRuntimeVersion());
      if (hasContainerRuntimeVersion()) {
        result = result && getContainerRuntimeVersion().equals(other.getContainerRuntimeVersion());
      }
      result = result && (hasKubeletVersion() == other.hasKubeletVersion());
      if (hasKubeletVersion()) {
        result = result && getKubeletVersion().equals(other.getKubeletVersion());
      }
      result = result && (hasKubeProxyVersion() == other.hasKubeProxyVersion());
      if (hasKubeProxyVersion()) {
        result = result && getKubeProxyVersion().equals(other.getKubeProxyVersion());
      }
      result = result && (hasOperatingSystem() == other.hasOperatingSystem());
      if (hasOperatingSystem()) {
        result = result && getOperatingSystem().equals(other.getOperatingSystem());
      }
      result = result && (hasArchitecture() == other.hasArchitecture());
      if (hasArchitecture()) {
        result = result && getArchitecture().equals(other.getArchitecture());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMachineID()) {
        hash = (37 * hash) + MACHINEID_FIELD_NUMBER;
        hash = (53 * hash) + getMachineID().hashCode();
      }
      if (hasSystemUUID()) {
        hash = (37 * hash) + SYSTEMUUID_FIELD_NUMBER;
        hash = (53 * hash) + getSystemUUID().hashCode();
      }
      if (hasBootID()) {
        hash = (37 * hash) + BOOTID_FIELD_NUMBER;
        hash = (53 * hash) + getBootID().hashCode();
      }
      if (hasKernelVersion()) {
        hash = (37 * hash) + KERNELVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getKernelVersion().hashCode();
      }
      if (hasOsImage()) {
        hash = (37 * hash) + OSIMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getOsImage().hashCode();
      }
      if (hasContainerRuntimeVersion()) {
        hash = (37 * hash) + CONTAINERRUNTIMEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getContainerRuntimeVersion().hashCode();
      }
      if (hasKubeletVersion()) {
        hash = (37 * hash) + KUBELETVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getKubeletVersion().hashCode();
      }
      if (hasKubeProxyVersion()) {
        hash = (37 * hash) + KUBEPROXYVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getKubeProxyVersion().hashCode();
      }
      if (hasOperatingSystem()) {
        hash = (37 * hash) + OPERATINGSYSTEM_FIELD_NUMBER;
        hash = (53 * hash) + getOperatingSystem().hashCode();
      }
      if (hasArchitecture()) {
        hash = (37 * hash) + ARCHITECTURE_FIELD_NUMBER;
        hash = (53 * hash) + getArchitecture().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.NodeSystemInfo prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * NodeSystemInfo is a set of ids/uuids to uniquely identify the node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.NodeSystemInfo}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.NodeSystemInfo)
        io.kubernetes.client.proto.V1.NodeSystemInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_NodeSystemInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.NodeSystemInfo.class,
                io.kubernetes.client.proto.V1.NodeSystemInfo.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.NodeSystemInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        machineID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        systemUUID_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        bootID_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        kernelVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        osImage_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        containerRuntimeVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        kubeletVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        kubeProxyVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        operatingSystem_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        architecture_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSystemInfo getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSystemInfo build() {
        io.kubernetes.client.proto.V1.NodeSystemInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.NodeSystemInfo buildPartial() {
        io.kubernetes.client.proto.V1.NodeSystemInfo result =
            new io.kubernetes.client.proto.V1.NodeSystemInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.machineID_ = machineID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.systemUUID_ = systemUUID_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.bootID_ = bootID_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.kernelVersion_ = kernelVersion_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.osImage_ = osImage_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.containerRuntimeVersion_ = containerRuntimeVersion_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.kubeletVersion_ = kubeletVersion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.kubeProxyVersion_ = kubeProxyVersion_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.operatingSystem_ = operatingSystem_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.architecture_ = architecture_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.NodeSystemInfo) {
          return mergeFrom((io.kubernetes.client.proto.V1.NodeSystemInfo) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.NodeSystemInfo other) {
        if (other == io.kubernetes.client.proto.V1.NodeSystemInfo.getDefaultInstance()) return this;
        if (other.hasMachineID()) {
          bitField0_ |= 0x00000001;
          machineID_ = other.machineID_;
          onChanged();
        }
        if (other.hasSystemUUID()) {
          bitField0_ |= 0x00000002;
          systemUUID_ = other.systemUUID_;
          onChanged();
        }
        if (other.hasBootID()) {
          bitField0_ |= 0x00000004;
          bootID_ = other.bootID_;
          onChanged();
        }
        if (other.hasKernelVersion()) {
          bitField0_ |= 0x00000008;
          kernelVersion_ = other.kernelVersion_;
          onChanged();
        }
        if (other.hasOsImage()) {
          bitField0_ |= 0x00000010;
          osImage_ = other.osImage_;
          onChanged();
        }
        if (other.hasContainerRuntimeVersion()) {
          bitField0_ |= 0x00000020;
          containerRuntimeVersion_ = other.containerRuntimeVersion_;
          onChanged();
        }
        if (other.hasKubeletVersion()) {
          bitField0_ |= 0x00000040;
          kubeletVersion_ = other.kubeletVersion_;
          onChanged();
        }
        if (other.hasKubeProxyVersion()) {
          bitField0_ |= 0x00000080;
          kubeProxyVersion_ = other.kubeProxyVersion_;
          onChanged();
        }
        if (other.hasOperatingSystem()) {
          bitField0_ |= 0x00000100;
          operatingSystem_ = other.operatingSystem_;
          onChanged();
        }
        if (other.hasArchitecture()) {
          bitField0_ |= 0x00000200;
          architecture_ = other.architecture_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.NodeSystemInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.NodeSystemInfo) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object machineID_ = "";
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public boolean hasMachineID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public java.lang.String getMachineID() {
        java.lang.Object ref = machineID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            machineID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public com.google.protobuf.ByteString getMachineIDBytes() {
        java.lang.Object ref = machineID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          machineID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public Builder setMachineID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        machineID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public Builder clearMachineID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        machineID_ = getDefaultInstance().getMachineID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * MachineID reported by the node. For unique machine identification
       * in the cluster this field is preferred. Learn more from man(5)
       * machine-id: http://man7.org/linux/man-pages/man5/machine-id.5.html
       * </pre>
       *
       * <code>optional string machineID = 1;</code>
       */
      public Builder setMachineIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        machineID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object systemUUID_ = "";
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public boolean hasSystemUUID() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public java.lang.String getSystemUUID() {
        java.lang.Object ref = systemUUID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            systemUUID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public com.google.protobuf.ByteString getSystemUUIDBytes() {
        java.lang.Object ref = systemUUID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          systemUUID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public Builder setSystemUUID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        systemUUID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public Builder clearSystemUUID() {
        bitField0_ = (bitField0_ & ~0x00000002);
        systemUUID_ = getDefaultInstance().getSystemUUID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * SystemUUID reported by the node. For unique machine identification
       * MachineID is preferred. This field is specific to Red Hat hosts
       * https://access.redhat.com/documentation/en-US/Red_Hat_Subscription_Management/1/html/RHSM/getting-system-uuid.html
       * </pre>
       *
       * <code>optional string systemUUID = 2;</code>
       */
      public Builder setSystemUUIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        systemUUID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object bootID_ = "";
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public boolean hasBootID() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public java.lang.String getBootID() {
        java.lang.Object ref = bootID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            bootID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public com.google.protobuf.ByteString getBootIDBytes() {
        java.lang.Object ref = bootID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          bootID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public Builder setBootID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        bootID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public Builder clearBootID() {
        bitField0_ = (bitField0_ & ~0x00000004);
        bootID_ = getDefaultInstance().getBootID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Boot ID reported by the node.
       * </pre>
       *
       * <code>optional string bootID = 3;</code>
       */
      public Builder setBootIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        bootID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kernelVersion_ = "";
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public boolean hasKernelVersion() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public java.lang.String getKernelVersion() {
        java.lang.Object ref = kernelVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kernelVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public com.google.protobuf.ByteString getKernelVersionBytes() {
        java.lang.Object ref = kernelVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kernelVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public Builder setKernelVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        kernelVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public Builder clearKernelVersion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        kernelVersion_ = getDefaultInstance().getKernelVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kernel Version reported by the node from 'uname -r' (e.g. 3.16.0-0.bpo.4-amd64).
       * </pre>
       *
       * <code>optional string kernelVersion = 4;</code>
       */
      public Builder setKernelVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        kernelVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object osImage_ = "";
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public boolean hasOsImage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public java.lang.String getOsImage() {
        java.lang.Object ref = osImage_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            osImage_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public com.google.protobuf.ByteString getOsImageBytes() {
        java.lang.Object ref = osImage_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          osImage_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public Builder setOsImage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        osImage_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public Builder clearOsImage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        osImage_ = getDefaultInstance().getOsImage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * OS Image reported by the node from /etc/os-release (e.g. Debian GNU/Linux 7 (wheezy)).
       * </pre>
       *
       * <code>optional string osImage = 5;</code>
       */
      public Builder setOsImageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        osImage_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object containerRuntimeVersion_ = "";
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public boolean hasContainerRuntimeVersion() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public java.lang.String getContainerRuntimeVersion() {
        java.lang.Object ref = containerRuntimeVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            containerRuntimeVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public com.google.protobuf.ByteString getContainerRuntimeVersionBytes() {
        java.lang.Object ref = containerRuntimeVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          containerRuntimeVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public Builder setContainerRuntimeVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        containerRuntimeVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public Builder clearContainerRuntimeVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        containerRuntimeVersion_ = getDefaultInstance().getContainerRuntimeVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ContainerRuntime Version reported by the node through runtime remote API (e.g. docker://1.5.0).
       * </pre>
       *
       * <code>optional string containerRuntimeVersion = 6;</code>
       */
      public Builder setContainerRuntimeVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        containerRuntimeVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kubeletVersion_ = "";
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public boolean hasKubeletVersion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public java.lang.String getKubeletVersion() {
        java.lang.Object ref = kubeletVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kubeletVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public com.google.protobuf.ByteString getKubeletVersionBytes() {
        java.lang.Object ref = kubeletVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kubeletVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public Builder setKubeletVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        kubeletVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public Builder clearKubeletVersion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        kubeletVersion_ = getDefaultInstance().getKubeletVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kubelet Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeletVersion = 7;</code>
       */
      public Builder setKubeletVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        kubeletVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kubeProxyVersion_ = "";
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public boolean hasKubeProxyVersion() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public java.lang.String getKubeProxyVersion() {
        java.lang.Object ref = kubeProxyVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kubeProxyVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public com.google.protobuf.ByteString getKubeProxyVersionBytes() {
        java.lang.Object ref = kubeProxyVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kubeProxyVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public Builder setKubeProxyVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        kubeProxyVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public Builder clearKubeProxyVersion() {
        bitField0_ = (bitField0_ & ~0x00000080);
        kubeProxyVersion_ = getDefaultInstance().getKubeProxyVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * KubeProxy Version reported by the node.
       * </pre>
       *
       * <code>optional string kubeProxyVersion = 8;</code>
       */
      public Builder setKubeProxyVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        kubeProxyVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object operatingSystem_ = "";
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public boolean hasOperatingSystem() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public java.lang.String getOperatingSystem() {
        java.lang.Object ref = operatingSystem_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            operatingSystem_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public com.google.protobuf.ByteString getOperatingSystemBytes() {
        java.lang.Object ref = operatingSystem_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          operatingSystem_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public Builder setOperatingSystem(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        operatingSystem_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public Builder clearOperatingSystem() {
        bitField0_ = (bitField0_ & ~0x00000100);
        operatingSystem_ = getDefaultInstance().getOperatingSystem();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Operating System reported by the node
       * </pre>
       *
       * <code>optional string operatingSystem = 9;</code>
       */
      public Builder setOperatingSystemBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        operatingSystem_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object architecture_ = "";
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public boolean hasArchitecture() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public java.lang.String getArchitecture() {
        java.lang.Object ref = architecture_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            architecture_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public com.google.protobuf.ByteString getArchitectureBytes() {
        java.lang.Object ref = architecture_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          architecture_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public Builder setArchitecture(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        architecture_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public Builder clearArchitecture() {
        bitField0_ = (bitField0_ & ~0x00000200);
        architecture_ = getDefaultInstance().getArchitecture();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Architecture reported by the node
       * </pre>
       *
       * <code>optional string architecture = 10;</code>
       */
      public Builder setArchitectureBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        architecture_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.NodeSystemInfo)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.NodeSystemInfo)
    private static final io.kubernetes.client.proto.V1.NodeSystemInfo DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.NodeSystemInfo();
    }

    public static io.kubernetes.client.proto.V1.NodeSystemInfo getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<NodeSystemInfo> PARSER =
        new com.google.protobuf.AbstractParser<NodeSystemInfo>() {
          @java.lang.Override
          public NodeSystemInfo parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new NodeSystemInfo(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<NodeSystemInfo> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<NodeSystemInfo> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.NodeSystemInfo getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ObjectFieldSelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ObjectFieldSelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    boolean hasApiVersion();
    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    java.lang.String getApiVersion();
    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    com.google.protobuf.ByteString getApiVersionBytes();

    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    boolean hasFieldPath();
    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    java.lang.String getFieldPath();
    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    com.google.protobuf.ByteString getFieldPathBytes();
  }
  /**
   *
   *
   * <pre>
   * ObjectFieldSelector selects an APIVersioned field of an object.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ObjectFieldSelector}
   */
  public static final class ObjectFieldSelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ObjectFieldSelector)
      ObjectFieldSelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ObjectFieldSelector.newBuilder() to construct.
    private ObjectFieldSelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ObjectFieldSelector() {
      apiVersion_ = "";
      fieldPath_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ObjectFieldSelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                apiVersion_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fieldPath_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ObjectFieldSelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ObjectFieldSelector.class,
              io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder.class);
    }

    private int bitField0_;
    public static final int APIVERSION_FIELD_NUMBER = 1;
    private volatile java.lang.Object apiVersion_;
    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    public boolean hasApiVersion() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    public java.lang.String getApiVersion() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          apiVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Version of the schema the FieldPath is written in terms of, defaults to "v1".
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 1;</code>
     */
    public com.google.protobuf.ByteString getApiVersionBytes() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        apiVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIELDPATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object fieldPath_;
    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    public boolean hasFieldPath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    public java.lang.String getFieldPath() {
      java.lang.Object ref = fieldPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fieldPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path of the field to select in the specified API version.
     * </pre>
     *
     * <code>optional string fieldPath = 2;</code>
     */
    public com.google.protobuf.ByteString getFieldPathBytes() {
      java.lang.Object ref = fieldPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fieldPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, apiVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fieldPath_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, apiVersion_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fieldPath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ObjectFieldSelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ObjectFieldSelector other =
          (io.kubernetes.client.proto.V1.ObjectFieldSelector) obj;

      boolean result = true;
      result = result && (hasApiVersion() == other.hasApiVersion());
      if (hasApiVersion()) {
        result = result && getApiVersion().equals(other.getApiVersion());
      }
      result = result && (hasFieldPath() == other.hasFieldPath());
      if (hasFieldPath()) {
        result = result && getFieldPath().equals(other.getFieldPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasApiVersion()) {
        hash = (37 * hash) + APIVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getApiVersion().hashCode();
      }
      if (hasFieldPath()) {
        hash = (37 * hash) + FIELDPATH_FIELD_NUMBER;
        hash = (53 * hash) + getFieldPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ObjectFieldSelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ObjectFieldSelector selects an APIVersioned field of an object.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ObjectFieldSelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ObjectFieldSelector)
        io.kubernetes.client.proto.V1.ObjectFieldSelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ObjectFieldSelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ObjectFieldSelector.class,
                io.kubernetes.client.proto.V1.ObjectFieldSelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ObjectFieldSelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        apiVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fieldPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectFieldSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectFieldSelector build() {
        io.kubernetes.client.proto.V1.ObjectFieldSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectFieldSelector buildPartial() {
        io.kubernetes.client.proto.V1.ObjectFieldSelector result =
            new io.kubernetes.client.proto.V1.ObjectFieldSelector(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.apiVersion_ = apiVersion_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fieldPath_ = fieldPath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ObjectFieldSelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.ObjectFieldSelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ObjectFieldSelector other) {
        if (other == io.kubernetes.client.proto.V1.ObjectFieldSelector.getDefaultInstance())
          return this;
        if (other.hasApiVersion()) {
          bitField0_ |= 0x00000001;
          apiVersion_ = other.apiVersion_;
          onChanged();
        }
        if (other.hasFieldPath()) {
          bitField0_ |= 0x00000002;
          fieldPath_ = other.fieldPath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ObjectFieldSelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ObjectFieldSelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object apiVersion_ = "";
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public boolean hasApiVersion() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public java.lang.String getApiVersion() {
        java.lang.Object ref = apiVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            apiVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public com.google.protobuf.ByteString getApiVersionBytes() {
        java.lang.Object ref = apiVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          apiVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public Builder setApiVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public Builder clearApiVersion() {
        bitField0_ = (bitField0_ & ~0x00000001);
        apiVersion_ = getDefaultInstance().getApiVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Version of the schema the FieldPath is written in terms of, defaults to "v1".
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 1;</code>
       */
      public Builder setApiVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        apiVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fieldPath_ = "";
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public boolean hasFieldPath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public java.lang.String getFieldPath() {
        java.lang.Object ref = fieldPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fieldPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public com.google.protobuf.ByteString getFieldPathBytes() {
        java.lang.Object ref = fieldPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fieldPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public Builder setFieldPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fieldPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public Builder clearFieldPath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fieldPath_ = getDefaultInstance().getFieldPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path of the field to select in the specified API version.
       * </pre>
       *
       * <code>optional string fieldPath = 2;</code>
       */
      public Builder setFieldPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fieldPath_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ObjectFieldSelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ObjectFieldSelector)
    private static final io.kubernetes.client.proto.V1.ObjectFieldSelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ObjectFieldSelector();
    }

    public static io.kubernetes.client.proto.V1.ObjectFieldSelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ObjectFieldSelector> PARSER =
        new com.google.protobuf.AbstractParser<ObjectFieldSelector>() {
          @java.lang.Override
          public ObjectFieldSelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ObjectFieldSelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ObjectFieldSelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ObjectFieldSelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ObjectFieldSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ObjectReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ObjectReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    boolean hasKind();
    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    java.lang.String getKind();
    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    com.google.protobuf.ByteString getKindBytes();

    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    boolean hasNamespace();
    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    java.lang.String getNamespace();
    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    com.google.protobuf.ByteString getNamespaceBytes();

    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    boolean hasUid();
    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    java.lang.String getUid();
    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    com.google.protobuf.ByteString getUidBytes();

    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    boolean hasApiVersion();
    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    java.lang.String getApiVersion();
    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    com.google.protobuf.ByteString getApiVersionBytes();

    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    boolean hasResourceVersion();
    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    java.lang.String getResourceVersion();
    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    com.google.protobuf.ByteString getResourceVersionBytes();

    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    boolean hasFieldPath();
    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    java.lang.String getFieldPath();
    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    com.google.protobuf.ByteString getFieldPathBytes();
  }
  /**
   *
   *
   * <pre>
   * ObjectReference contains enough information to let you inspect or modify the referred object.
   * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ObjectReference}
   */
  public static final class ObjectReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ObjectReference)
      ObjectReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ObjectReference.newBuilder() to construct.
    private ObjectReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ObjectReference() {
      kind_ = "";
      namespace_ = "";
      name_ = "";
      uid_ = "";
      apiVersion_ = "";
      resourceVersion_ = "";
      fieldPath_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ObjectReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                kind_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                namespace_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                name_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                uid_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                apiVersion_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                resourceVersion_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                fieldPath_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ObjectReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ObjectReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ObjectReference.class,
              io.kubernetes.client.proto.V1.ObjectReference.Builder.class);
    }

    private int bitField0_;
    public static final int KIND_FIELD_NUMBER = 1;
    private volatile java.lang.Object kind_;
    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Kind of the referent.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional string kind = 1;</code>
     */
    public com.google.protobuf.ByteString getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAMESPACE_FIELD_NUMBER = 2;
    private volatile java.lang.Object namespace_;
    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public java.lang.String getNamespace() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          namespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Namespace of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public com.google.protobuf.ByteString getNamespaceBytes() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        namespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * +optional
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int UID_FIELD_NUMBER = 4;
    private volatile java.lang.Object uid_;
    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    public java.lang.String getUid() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          uid_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * UID of the referent.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
     * +optional
     * </pre>
     *
     * <code>optional string uid = 4;</code>
     */
    public com.google.protobuf.ByteString getUidBytes() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        uid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int APIVERSION_FIELD_NUMBER = 5;
    private volatile java.lang.Object apiVersion_;
    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    public boolean hasApiVersion() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    public java.lang.String getApiVersion() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          apiVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * API version of the referent.
     * +optional
     * </pre>
     *
     * <code>optional string apiVersion = 5;</code>
     */
    public com.google.protobuf.ByteString getApiVersionBytes() {
      java.lang.Object ref = apiVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        apiVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCEVERSION_FIELD_NUMBER = 6;
    private volatile java.lang.Object resourceVersion_;
    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    public boolean hasResourceVersion() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    public java.lang.String getResourceVersion() {
      java.lang.Object ref = resourceVersion_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          resourceVersion_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Specific resourceVersion to which this reference is made, if any.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
     * +optional
     * </pre>
     *
     * <code>optional string resourceVersion = 6;</code>
     */
    public com.google.protobuf.ByteString getResourceVersionBytes() {
      java.lang.Object ref = resourceVersion_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        resourceVersion_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FIELDPATH_FIELD_NUMBER = 7;
    private volatile java.lang.Object fieldPath_;
    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    public boolean hasFieldPath() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    public java.lang.String getFieldPath() {
      java.lang.Object ref = fieldPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fieldPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * If referring to a piece of an object instead of an entire object, this string
     * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
     * For example, if the object reference is to a container within a pod, this would take on a value like:
     * "spec.containers{name}" (where "name" refers to the name of the container that triggered
     * the event) or if no container name is specified "spec.containers[2]" (container with
     * index 2 in this pod). This syntax is chosen only to have some well-defined way of
     * referencing a part of an object.
     * TODO: this design is not final and this field is subject to change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string fieldPath = 7;</code>
     */
    public com.google.protobuf.ByteString getFieldPathBytes() {
      java.lang.Object ref = fieldPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fieldPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, kind_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, namespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, uid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, apiVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, resourceVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, fieldPath_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, kind_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, namespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, uid_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, apiVersion_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, resourceVersion_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, fieldPath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ObjectReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ObjectReference other =
          (io.kubernetes.client.proto.V1.ObjectReference) obj;

      boolean result = true;
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind().equals(other.getKind());
      }
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace().equals(other.getNamespace());
      }
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid().equals(other.getUid());
      }
      result = result && (hasApiVersion() == other.hasApiVersion());
      if (hasApiVersion()) {
        result = result && getApiVersion().equals(other.getApiVersion());
      }
      result = result && (hasResourceVersion() == other.hasResourceVersion());
      if (hasResourceVersion()) {
        result = result && getResourceVersion().equals(other.getResourceVersion());
      }
      result = result && (hasFieldPath() == other.hasFieldPath());
      if (hasFieldPath()) {
        result = result && getFieldPath().equals(other.getFieldPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      if (hasApiVersion()) {
        hash = (37 * hash) + APIVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getApiVersion().hashCode();
      }
      if (hasResourceVersion()) {
        hash = (37 * hash) + RESOURCEVERSION_FIELD_NUMBER;
        hash = (53 * hash) + getResourceVersion().hashCode();
      }
      if (hasFieldPath()) {
        hash = (37 * hash) + FIELDPATH_FIELD_NUMBER;
        hash = (53 * hash) + getFieldPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ObjectReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ObjectReference contains enough information to let you inspect or modify the referred object.
     * +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ObjectReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ObjectReference)
        io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ObjectReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ObjectReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ObjectReference.class,
                io.kubernetes.client.proto.V1.ObjectReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ObjectReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        apiVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        resourceVersion_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        fieldPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ObjectReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectReference build() {
        io.kubernetes.client.proto.V1.ObjectReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ObjectReference buildPartial() {
        io.kubernetes.client.proto.V1.ObjectReference result =
            new io.kubernetes.client.proto.V1.ObjectReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.kind_ = kind_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.namespace_ = namespace_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.apiVersion_ = apiVersion_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.resourceVersion_ = resourceVersion_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.fieldPath_ = fieldPath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ObjectReference) {
          return mergeFrom((io.kubernetes.client.proto.V1.ObjectReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ObjectReference other) {
        if (other == io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance())
          return this;
        if (other.hasKind()) {
          bitField0_ |= 0x00000001;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000002;
          namespace_ = other.namespace_;
          onChanged();
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000004;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasUid()) {
          bitField0_ |= 0x00000008;
          uid_ = other.uid_;
          onChanged();
        }
        if (other.hasApiVersion()) {
          bitField0_ |= 0x00000010;
          apiVersion_ = other.apiVersion_;
          onChanged();
        }
        if (other.hasResourceVersion()) {
          bitField0_ |= 0x00000020;
          resourceVersion_ = other.resourceVersion_;
          onChanged();
        }
        if (other.hasFieldPath()) {
          bitField0_ |= 0x00000040;
          fieldPath_ = other.fieldPath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ObjectReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ObjectReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object kind_ = "";
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public com.google.protobuf.ByteString getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder setKind(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000001);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kind of the referent.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional string kind = 1;</code>
       */
      public Builder setKindBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object namespace_ = "";
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public com.google.protobuf.ByteString getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder setNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000002);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder setNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        namespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * +optional
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object uid_ = "";
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public java.lang.String getUid() {
        java.lang.Object ref = uid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            uid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public com.google.protobuf.ByteString getUidBytes() {
        java.lang.Object ref = uid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          uid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public Builder setUid(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000008);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * UID of the referent.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
       * +optional
       * </pre>
       *
       * <code>optional string uid = 4;</code>
       */
      public Builder setUidBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        uid_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object apiVersion_ = "";
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public boolean hasApiVersion() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public java.lang.String getApiVersion() {
        java.lang.Object ref = apiVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            apiVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public com.google.protobuf.ByteString getApiVersionBytes() {
        java.lang.Object ref = apiVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          apiVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public Builder setApiVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        apiVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public Builder clearApiVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        apiVersion_ = getDefaultInstance().getApiVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * API version of the referent.
       * +optional
       * </pre>
       *
       * <code>optional string apiVersion = 5;</code>
       */
      public Builder setApiVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        apiVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resourceVersion_ = "";
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public boolean hasResourceVersion() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public java.lang.String getResourceVersion() {
        java.lang.Object ref = resourceVersion_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            resourceVersion_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public com.google.protobuf.ByteString getResourceVersionBytes() {
        java.lang.Object ref = resourceVersion_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          resourceVersion_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public Builder setResourceVersion(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        resourceVersion_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public Builder clearResourceVersion() {
        bitField0_ = (bitField0_ & ~0x00000020);
        resourceVersion_ = getDefaultInstance().getResourceVersion();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specific resourceVersion to which this reference is made, if any.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
       * +optional
       * </pre>
       *
       * <code>optional string resourceVersion = 6;</code>
       */
      public Builder setResourceVersionBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        resourceVersion_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fieldPath_ = "";
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public boolean hasFieldPath() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public java.lang.String getFieldPath() {
        java.lang.Object ref = fieldPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fieldPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public com.google.protobuf.ByteString getFieldPathBytes() {
        java.lang.Object ref = fieldPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fieldPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public Builder setFieldPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        fieldPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public Builder clearFieldPath() {
        bitField0_ = (bitField0_ & ~0x00000040);
        fieldPath_ = getDefaultInstance().getFieldPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If referring to a piece of an object instead of an entire object, this string
       * should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
       * For example, if the object reference is to a container within a pod, this would take on a value like:
       * "spec.containers{name}" (where "name" refers to the name of the container that triggered
       * the event) or if no container name is specified "spec.containers[2]" (container with
       * index 2 in this pod). This syntax is chosen only to have some well-defined way of
       * referencing a part of an object.
       * TODO: this design is not final and this field is subject to change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string fieldPath = 7;</code>
       */
      public Builder setFieldPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        fieldPath_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ObjectReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ObjectReference)
    private static final io.kubernetes.client.proto.V1.ObjectReference DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ObjectReference();
    }

    public static io.kubernetes.client.proto.V1.ObjectReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ObjectReference> PARSER =
        new com.google.protobuf.AbstractParser<ObjectReference>() {
          @java.lang.Override
          public ObjectReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ObjectReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ObjectReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ObjectReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ObjectReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolume)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolume (PV) is a storage resource provisioned by an administrator.
   * It is analogous to a node.
   * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolume}
   */
  public static final class PersistentVolume extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolume)
      PersistentVolumeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolume.newBuilder() to construct.
    private PersistentVolume(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolume() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolume(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeSpec.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeStatus.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolume_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolume.class,
              io.kubernetes.client.proto.V1.PersistentVolume.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PersistentVolumeSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines a specification of a persistent volume owned by the cluster.
     * Provisioned by an administrator.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.PersistentVolumeStatus status_;
    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status represents the current information/status for the persistent volume.
     * Populated by the system.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolume)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolume other =
          (io.kubernetes.client.proto.V1.PersistentVolume) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PersistentVolume prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolume (PV) is a storage resource provisioned by an administrator.
     * It is analogous to a node.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolume}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolume)
        io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolume_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolume.class,
                io.kubernetes.client.proto.V1.PersistentVolume.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolume.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolume getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolume.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolume build() {
        io.kubernetes.client.proto.V1.PersistentVolume result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolume buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolume result =
            new io.kubernetes.client.proto.V1.PersistentVolume(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolume) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolume) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolume other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolume.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolume parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PersistentVolume) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeSpec,
              io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PersistentVolumeSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.PersistentVolumeSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.PersistentVolumeSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines a specification of a persistent volume owned by the cluster.
       * Provisioned by an administrator.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeSpec,
              io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeSpec,
                  io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeStatus,
              io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PersistentVolumeStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.PersistentVolumeStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.PersistentVolumeStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status for the persistent volume.
       * Populated by the system.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistent-volumes
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeStatus,
              io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeStatus,
                  io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolume)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolume)
    private static final io.kubernetes.client.proto.V1.PersistentVolume DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolume();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolume getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolume> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolume>() {
          @java.lang.Override
          public PersistentVolume parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolume(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolume> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolume> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolume getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaim)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaim is a user's request for and claim to a persistent volume
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaim}
   */
  public static final class PersistentVolumeClaim extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaim)
      PersistentVolumeClaimOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaim.newBuilder() to construct.
    private PersistentVolumeClaim(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaim() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaim(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaim.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the desired characteristics of a volume requested by a pod author.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus status_;
    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status represents the current information/status of a persistent volume claim.
     * Read-only.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaim)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaim other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaim) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaim prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaim is a user's request for and claim to a persistent volume
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaim}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaim)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaim.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeClaim.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaim.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaim result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaim result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaim(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaim) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaim) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeClaim other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeClaim.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaim parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaim) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_
                  != io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired characteristics of a volume requested by a pod author.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus
                      .getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder
          getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status represents the current information/status of a persistent volume claim.
       * Read-only.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeClaimStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaim)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaim)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaim DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaim();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaim getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaim> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaim>() {
          @java.lang.Override
          public PersistentVolumeClaim parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaim(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaim> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaim> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaim getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaimCondition)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional string type = 1;</code> */
    boolean hasType();
    /** <code>optional string type = 1;</code> */
    java.lang.String getType();
    /** <code>optional string type = 1;</code> */
    com.google.protobuf.ByteString getTypeBytes();

    /** <code>optional string status = 2;</code> */
    boolean hasStatus();
    /** <code>optional string status = 2;</code> */
    java.lang.String getStatus();
    /** <code>optional string status = 2;</code> */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    boolean hasLastProbeTime();
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastProbeTime();
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    boolean hasLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaimCondition contails details about state of pvc
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimCondition}
   */
  public static final class PersistentVolumeClaimCondition
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaimCondition)
      PersistentVolumeClaimConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaimCondition.newBuilder() to construct.
    private PersistentVolumeClaimCondition(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaimCondition() {
      type_ = "";
      status_ = "";
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaimCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastProbeTime_.toBuilder();
                }
                lastProbeTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastProbeTime_);
                  lastProbeTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = lastTransitionTime_.toBuilder();
                }
                lastTransitionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTransitionTime_);
                  lastTransitionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                reason_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /** <code>optional string type = 1;</code> */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional string type = 1;</code> */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /** <code>optional string type = 1;</code> */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /** <code>optional string status = 2;</code> */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /** <code>optional string status = 2;</code> */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /** <code>optional string status = 2;</code> */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTPROBETIME_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Time lastProbeTime_;
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public boolean hasLastProbeTime() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastProbeTime() {
      return lastProbeTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastProbeTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder() {
      return lastProbeTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastProbeTime_;
    }

    public static final int LASTTRANSITIONTIME_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.Time lastTransitionTime_;
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public boolean hasLastTransitionTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 5;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Unique, this should be a short, machine understandable string that gives the reason
     * for condition's last transition. If it reports "ResizeStarted" that means the underlying
     * persistent volume is being resized.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 6;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastProbeTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastProbeTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasLastProbeTime() == other.hasLastProbeTime());
      if (hasLastProbeTime()) {
        result = result && getLastProbeTime().equals(other.getLastProbeTime());
      }
      result = result && (hasLastTransitionTime() == other.hasLastTransitionTime());
      if (hasLastTransitionTime()) {
        result = result && getLastTransitionTime().equals(other.getLastTransitionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasLastProbeTime()) {
        hash = (37 * hash) + LASTPROBETIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastProbeTime().hashCode();
      }
      if (hasLastTransitionTime()) {
        hash = (37 * hash) + LASTTRANSITIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimCondition contails details about state of pvc
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaimCondition)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLastProbeTimeFieldBuilder();
          getLastTransitionTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = null;
        } else {
          lastProbeTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastProbeTimeBuilder_ == null) {
          result.lastProbeTime_ = lastProbeTime_;
        } else {
          result.lastProbeTime_ = lastProbeTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (lastTransitionTimeBuilder_ == null) {
          result.lastTransitionTime_ = lastTransitionTime_;
        } else {
          result.lastTransitionTime_ = lastTransitionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition other) {
        if (other
            == io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.getDefaultInstance())
          return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasLastProbeTime()) {
          mergeLastProbeTime(other.getLastProbeTime());
        }
        if (other.hasLastTransitionTime()) {
          mergeLastTransitionTime(other.getLastTransitionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000010;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000020;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /** <code>optional string type = 1;</code> */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /** <code>optional string type = 1;</code> */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string type = 1;</code> */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string type = 1;</code> */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string type = 1;</code> */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /** <code>optional string type = 1;</code> */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /** <code>optional string status = 2;</code> */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /** <code>optional string status = 2;</code> */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /** <code>optional string status = 2;</code> */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /** <code>optional string status = 2;</code> */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /** <code>optional string status = 2;</code> */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /** <code>optional string status = 2;</code> */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time lastProbeTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastProbeTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public boolean hasLastProbeTime() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastProbeTime() {
        if (lastProbeTimeBuilder_ == null) {
          return lastProbeTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastProbeTime_;
        } else {
          return lastProbeTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder setLastProbeTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastProbeTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastProbeTime_ = value;
          onChanged();
        } else {
          lastProbeTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder setLastProbeTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = builderForValue.build();
          onChanged();
        } else {
          lastProbeTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder mergeLastProbeTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastProbeTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastProbeTime_ != null
              && lastProbeTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastProbeTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastProbeTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastProbeTime_ = value;
          }
          onChanged();
        } else {
          lastProbeTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder clearLastProbeTime() {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = null;
          onChanged();
        } else {
          lastProbeTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastProbeTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastProbeTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder() {
        if (lastProbeTimeBuilder_ != null) {
          return lastProbeTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastProbeTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastProbeTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastProbeTimeFieldBuilder() {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastProbeTime(), getParentForChildren(), isClean());
          lastProbeTime_ = null;
        }
        return lastProbeTimeBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time lastTransitionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTransitionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public boolean hasLastTransitionTime() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        } else {
          return lastTransitionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTime_ = value;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = builderForValue.build();
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder mergeLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && lastTransitionTime_ != null
              && lastTransitionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTransitionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTransitionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTransitionTime_ = value;
          }
          onChanged();
        } else {
          lastTransitionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder clearLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTransitionTimeBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLastTransitionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
        if (lastTransitionTimeBuilder_ != null) {
          return lastTransitionTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTransitionTimeFieldBuilder() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTransitionTime(), getParentForChildren(), isClean());
          lastTransitionTime_ = null;
        }
        return lastTransitionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, this should be a short, machine understandable string that gives the reason
       * for condition's last transition. If it reports "ResizeStarted" that means the underlying
       * persistent volume is being resized.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaimCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaimCondition)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaimCondition> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaimCondition>() {
          @java.lang.Override
          public PersistentVolumeClaimCondition parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaimCondition(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaimCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaimCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaimList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim> getItemsList();
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaim getItems(int index);
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaimList is a list of PersistentVolumeClaim items.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimList}
   */
  public static final class PersistentVolumeClaimList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaimList)
      PersistentVolumeClaimListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaimList.newBuilder() to construct.
    private PersistentVolumeClaimList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaimList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaimList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.PersistentVolumeClaim>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeClaim.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaimList.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim> items_;
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaim getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of persistent volume claims.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaimList other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaimList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaimList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimList is a list of PersistentVolumeClaim items.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaimList)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimList.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeClaimList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimList build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimList buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimList result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaimList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimList) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaimList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeClaimList other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeClaimList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaimList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PersistentVolumeClaim>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaim,
              io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaim value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.PersistentVolumeClaim value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaim value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaim>
              values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PersistentVolumeClaim.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.PersistentVolumeClaim.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of persistent volume claims.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaim items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaim,
              io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeClaim,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaim.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaimList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaimList)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaimList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaimList();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaimList> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaimList>() {
          @java.lang.Override
          public PersistentVolumeClaimList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaimList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaimList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaimList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaimSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    java.util.List<java.lang.String> getAccessModesList();
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    int getAccessModesCount();
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    java.lang.String getAccessModes(int index);
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    com.google.protobuf.ByteString getAccessModesBytes(int index);

    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    boolean hasSelector();
    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    io.kubernetes.client.proto.Meta.LabelSelector getSelector();
    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getSelectorOrBuilder();

    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    boolean hasResources();
    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceRequirements getResources();
    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder();

    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    boolean hasVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    java.lang.String getVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    com.google.protobuf.ByteString getVolumeNameBytes();

    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    boolean hasStorageClassName();
    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    java.lang.String getStorageClassName();
    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    com.google.protobuf.ByteString getStorageClassNameBytes();

    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    boolean hasVolumeMode();
    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    java.lang.String getVolumeMode();
    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    com.google.protobuf.ByteString getVolumeModeBytes();

    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    boolean hasDataSource();
    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    io.kubernetes.client.proto.V1.TypedLocalObjectReference getDataSource();
    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder getDataSourceOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaimSpec describes the common attributes of storage devices
   * and allows a Source for provider-specific attributes
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimSpec}
   */
  public static final class PersistentVolumeClaimSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaimSpec)
      PersistentVolumeClaimSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaimSpec.newBuilder() to construct.
    private PersistentVolumeClaimSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaimSpec() {
      accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      volumeName_ = "";
      storageClassName_ = "";
      volumeMode_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaimSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  accessModes_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                accessModes_.add(bs);
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ResourceRequirements.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = resources_.toBuilder();
                }
                resources_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceRequirements.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(resources_);
                  resources_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                volumeName_ = bs;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.Meta.LabelSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = selector_.toBuilder();
                }
                selector_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.LabelSelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(selector_);
                  selector_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                storageClassName_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                volumeMode_ = bs;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = dataSource_.toBuilder();
                }
                dataSource_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.TypedLocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(dataSource_);
                  dataSource_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          accessModes_ = accessModes_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder.class);
    }

    private int bitField0_;
    public static final int ACCESSMODES_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList accessModes_;
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getAccessModesList() {
      return accessModes_;
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    public int getAccessModesCount() {
      return accessModes_.size();
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    public java.lang.String getAccessModes(int index) {
      return accessModes_.get(index);
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the desired access modes the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 1;</code>
     */
    public com.google.protobuf.ByteString getAccessModesBytes(int index) {
      return accessModes_.getByteString(index);
    }

    public static final int SELECTOR_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.LabelSelector selector_;
    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    public boolean hasSelector() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelector getSelector() {
      return selector_ == null
          ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
          : selector_;
    }
    /**
     *
     *
     * <pre>
     * A label query over volumes to consider for binding.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getSelectorOrBuilder() {
      return selector_ == null
          ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
          : selector_;
    }

    public static final int RESOURCES_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ResourceRequirements resources_;
    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    public boolean hasResources() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceRequirements getResources() {
      return resources_ == null
          ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
          : resources_;
    }
    /**
     *
     *
     * <pre>
     * Resources represents the minimum resources the volume should have.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder() {
      return resources_ == null
          ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
          : resources_;
    }

    public static final int VOLUMENAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object volumeName_;
    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    public boolean hasVolumeName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    public java.lang.String getVolumeName() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the binding reference to the PersistentVolume backing this claim.
     * +optional
     * </pre>
     *
     * <code>optional string volumeName = 3;</code>
     */
    public com.google.protobuf.ByteString getVolumeNameBytes() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGECLASSNAME_FIELD_NUMBER = 5;
    private volatile java.lang.Object storageClassName_;
    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    public boolean hasStorageClassName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    public java.lang.String getStorageClassName() {
      java.lang.Object ref = storageClassName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storageClassName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the StorageClass required by the claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 5;</code>
     */
    public com.google.protobuf.ByteString getStorageClassNameBytes() {
      java.lang.Object ref = storageClassName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storageClassName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMEMODE_FIELD_NUMBER = 6;
    private volatile java.lang.Object volumeMode_;
    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    public boolean hasVolumeMode() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    public java.lang.String getVolumeMode() {
      java.lang.Object ref = volumeMode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeMode_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * volumeMode defines what type of volume is required by the claim.
     * Value of Filesystem is implied when not included in claim spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 6;</code>
     */
    public com.google.protobuf.ByteString getVolumeModeBytes() {
      java.lang.Object ref = volumeMode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeMode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATASOURCE_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.TypedLocalObjectReference dataSource_;
    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    public boolean hasDataSource() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    public io.kubernetes.client.proto.V1.TypedLocalObjectReference getDataSource() {
      return dataSource_ == null
          ? io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance()
          : dataSource_;
    }
    /**
     *
     *
     * <pre>
     * This field requires the VolumeSnapshotDataSource alpha feature gate to be
     * enabled and currently VolumeSnapshot is the only supported data source.
     * If the provisioner can support VolumeSnapshot data source, it will create
     * a new volume and data will be restored to the volume at the same time.
     * If the provisioner does not support VolumeSnapshot data source, volume will
     * not be created and the failure will be reported as an event.
     * In the future, we plan to support more data source types and the behavior
     * of the provisioner may change.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
     */
    public io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder
        getDataSourceOrBuilder() {
      return dataSource_ == null
          ? io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance()
          : dataSource_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < accessModes_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, accessModes_.getRaw(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getResources());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, volumeName_);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(4, getSelector());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, storageClassName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, volumeMode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getDataSource());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < accessModes_.size(); i++) {
          dataSize += computeStringSizeNoTag(accessModes_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getAccessModesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getResources());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, volumeName_);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getSelector());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, storageClassName_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, volumeMode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getDataSource());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec) obj;

      boolean result = true;
      result = result && getAccessModesList().equals(other.getAccessModesList());
      result = result && (hasSelector() == other.hasSelector());
      if (hasSelector()) {
        result = result && getSelector().equals(other.getSelector());
      }
      result = result && (hasResources() == other.hasResources());
      if (hasResources()) {
        result = result && getResources().equals(other.getResources());
      }
      result = result && (hasVolumeName() == other.hasVolumeName());
      if (hasVolumeName()) {
        result = result && getVolumeName().equals(other.getVolumeName());
      }
      result = result && (hasStorageClassName() == other.hasStorageClassName());
      if (hasStorageClassName()) {
        result = result && getStorageClassName().equals(other.getStorageClassName());
      }
      result = result && (hasVolumeMode() == other.hasVolumeMode());
      if (hasVolumeMode()) {
        result = result && getVolumeMode().equals(other.getVolumeMode());
      }
      result = result && (hasDataSource() == other.hasDataSource());
      if (hasDataSource()) {
        result = result && getDataSource().equals(other.getDataSource());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getAccessModesCount() > 0) {
        hash = (37 * hash) + ACCESSMODES_FIELD_NUMBER;
        hash = (53 * hash) + getAccessModesList().hashCode();
      }
      if (hasSelector()) {
        hash = (37 * hash) + SELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getSelector().hashCode();
      }
      if (hasResources()) {
        hash = (37 * hash) + RESOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getResources().hashCode();
      }
      if (hasVolumeName()) {
        hash = (37 * hash) + VOLUMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeName().hashCode();
      }
      if (hasStorageClassName()) {
        hash = (37 * hash) + STORAGECLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getStorageClassName().hashCode();
      }
      if (hasVolumeMode()) {
        hash = (37 * hash) + VOLUMEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeMode().hashCode();
      }
      if (hasDataSource()) {
        hash = (37 * hash) + DATASOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getDataSource().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimSpec describes the common attributes of storage devices
     * and allows a Source for provider-specific attributes
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaimSpec)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSelectorFieldBuilder();
          getResourcesFieldBuilder();
          getDataSourceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (selectorBuilder_ == null) {
          selector_ = null;
        } else {
          selectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (resourcesBuilder_ == null) {
          resources_ = null;
        } else {
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        volumeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        storageClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        volumeMode_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        if (dataSourceBuilder_ == null) {
          dataSource_ = null;
        } else {
          dataSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          accessModes_ = accessModes_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.accessModes_ = accessModes_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        if (selectorBuilder_ == null) {
          result.selector_ = selector_;
        } else {
          result.selector_ = selectorBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        if (resourcesBuilder_ == null) {
          result.resources_ = resources_;
        } else {
          result.resources_ = resourcesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.volumeName_ = volumeName_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.storageClassName_ = storageClassName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.volumeMode_ = volumeMode_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        if (dataSourceBuilder_ == null) {
          result.dataSource_ = dataSource_;
        } else {
          result.dataSource_ = dataSourceBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec.getDefaultInstance())
          return this;
        if (!other.accessModes_.isEmpty()) {
          if (accessModes_.isEmpty()) {
            accessModes_ = other.accessModes_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureAccessModesIsMutable();
            accessModes_.addAll(other.accessModes_);
          }
          onChanged();
        }
        if (other.hasSelector()) {
          mergeSelector(other.getSelector());
        }
        if (other.hasResources()) {
          mergeResources(other.getResources());
        }
        if (other.hasVolumeName()) {
          bitField0_ |= 0x00000008;
          volumeName_ = other.volumeName_;
          onChanged();
        }
        if (other.hasStorageClassName()) {
          bitField0_ |= 0x00000010;
          storageClassName_ = other.storageClassName_;
          onChanged();
        }
        if (other.hasVolumeMode()) {
          bitField0_ |= 0x00000020;
          volumeMode_ = other.volumeMode_;
          onChanged();
        }
        if (other.hasDataSource()) {
          mergeDataSource(other.getDataSource());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList accessModes_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureAccessModesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          accessModes_ = new com.google.protobuf.LazyStringArrayList(accessModes_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getAccessModesList() {
        return accessModes_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public int getAccessModesCount() {
        return accessModes_.size();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public java.lang.String getAccessModes(int index) {
        return accessModes_.get(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public com.google.protobuf.ByteString getAccessModesBytes(int index) {
        return accessModes_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public Builder setAccessModes(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public Builder addAccessModes(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public Builder addAllAccessModes(java.lang.Iterable<java.lang.String> values) {
        ensureAccessModesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, accessModes_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public Builder clearAccessModes() {
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the desired access modes the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 1;</code>
       */
      public Builder addAccessModesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.LabelSelector selector_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.LabelSelector,
              io.kubernetes.client.proto.Meta.LabelSelector.Builder,
              io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>
          selectorBuilder_;
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public boolean hasSelector() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelector getSelector() {
        if (selectorBuilder_ == null) {
          return selector_ == null
              ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
              : selector_;
        } else {
          return selectorBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public Builder setSelector(io.kubernetes.client.proto.Meta.LabelSelector value) {
        if (selectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          selector_ = value;
          onChanged();
        } else {
          selectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public Builder setSelector(
          io.kubernetes.client.proto.Meta.LabelSelector.Builder builderForValue) {
        if (selectorBuilder_ == null) {
          selector_ = builderForValue.build();
          onChanged();
        } else {
          selectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public Builder mergeSelector(io.kubernetes.client.proto.Meta.LabelSelector value) {
        if (selectorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && selector_ != null
              && selector_ != io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()) {
            selector_ =
                io.kubernetes.client.proto.Meta.LabelSelector.newBuilder(selector_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            selector_ = value;
          }
          onChanged();
        } else {
          selectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public Builder clearSelector() {
        if (selectorBuilder_ == null) {
          selector_ = null;
          onChanged();
        } else {
          selectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelector.Builder getSelectorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSelectorFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getSelectorOrBuilder() {
        if (selectorBuilder_ != null) {
          return selectorBuilder_.getMessageOrBuilder();
        } else {
          return selector_ == null
              ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
              : selector_;
        }
      }
      /**
       *
       *
       * <pre>
       * A label query over volumes to consider for binding.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector selector = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.LabelSelector,
              io.kubernetes.client.proto.Meta.LabelSelector.Builder,
              io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>
          getSelectorFieldBuilder() {
        if (selectorBuilder_ == null) {
          selectorBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.LabelSelector,
                  io.kubernetes.client.proto.Meta.LabelSelector.Builder,
                  io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>(
                  getSelector(), getParentForChildren(), isClean());
          selector_ = null;
        }
        return selectorBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceRequirements resources_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceRequirements,
              io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
              io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>
          resourcesBuilder_;
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public boolean hasResources() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirements getResources() {
        if (resourcesBuilder_ == null) {
          return resources_ == null
              ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
              : resources_;
        } else {
          return resourcesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public Builder setResources(io.kubernetes.client.proto.V1.ResourceRequirements value) {
        if (resourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          resources_ = value;
          onChanged();
        } else {
          resourcesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public Builder setResources(
          io.kubernetes.client.proto.V1.ResourceRequirements.Builder builderForValue) {
        if (resourcesBuilder_ == null) {
          resources_ = builderForValue.build();
          onChanged();
        } else {
          resourcesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public Builder mergeResources(io.kubernetes.client.proto.V1.ResourceRequirements value) {
        if (resourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && resources_ != null
              && resources_
                  != io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()) {
            resources_ =
                io.kubernetes.client.proto.V1.ResourceRequirements.newBuilder(resources_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            resources_ = value;
          }
          onChanged();
        } else {
          resourcesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public Builder clearResources() {
        if (resourcesBuilder_ == null) {
          resources_ = null;
          onChanged();
        } else {
          resourcesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirements.Builder getResourcesBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getResourcesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder getResourcesOrBuilder() {
        if (resourcesBuilder_ != null) {
          return resourcesBuilder_.getMessageOrBuilder();
        } else {
          return resources_ == null
              ? io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance()
              : resources_;
        }
      }
      /**
       *
       *
       * <pre>
       * Resources represents the minimum resources the volume should have.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceRequirements resources = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceRequirements,
              io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
              io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>
          getResourcesFieldBuilder() {
        if (resourcesBuilder_ == null) {
          resourcesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceRequirements,
                  io.kubernetes.client.proto.V1.ResourceRequirements.Builder,
                  io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder>(
                  getResources(), getParentForChildren(), isClean());
          resources_ = null;
        }
        return resourcesBuilder_;
      }

      private java.lang.Object volumeName_ = "";
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public boolean hasVolumeName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public java.lang.String getVolumeName() {
        java.lang.Object ref = volumeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public com.google.protobuf.ByteString getVolumeNameBytes() {
        java.lang.Object ref = volumeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public Builder setVolumeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        volumeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public Builder clearVolumeName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        volumeName_ = getDefaultInstance().getVolumeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the binding reference to the PersistentVolume backing this claim.
       * +optional
       * </pre>
       *
       * <code>optional string volumeName = 3;</code>
       */
      public Builder setVolumeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        volumeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storageClassName_ = "";
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public boolean hasStorageClassName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public java.lang.String getStorageClassName() {
        java.lang.Object ref = storageClassName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storageClassName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public com.google.protobuf.ByteString getStorageClassNameBytes() {
        java.lang.Object ref = storageClassName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storageClassName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public Builder setStorageClassName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        storageClassName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public Builder clearStorageClassName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        storageClassName_ = getDefaultInstance().getStorageClassName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the StorageClass required by the claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 5;</code>
       */
      public Builder setStorageClassNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        storageClassName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeMode_ = "";
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public boolean hasVolumeMode() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public java.lang.String getVolumeMode() {
        java.lang.Object ref = volumeMode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeMode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public com.google.protobuf.ByteString getVolumeModeBytes() {
        java.lang.Object ref = volumeMode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public Builder setVolumeMode(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        volumeMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public Builder clearVolumeMode() {
        bitField0_ = (bitField0_ & ~0x00000020);
        volumeMode_ = getDefaultInstance().getVolumeMode();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines what type of volume is required by the claim.
       * Value of Filesystem is implied when not included in claim spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 6;</code>
       */
      public Builder setVolumeModeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        volumeMode_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.TypedLocalObjectReference dataSource_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.TypedLocalObjectReference,
              io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder>
          dataSourceBuilder_;
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public boolean hasDataSource() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public io.kubernetes.client.proto.V1.TypedLocalObjectReference getDataSource() {
        if (dataSourceBuilder_ == null) {
          return dataSource_ == null
              ? io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance()
              : dataSource_;
        } else {
          return dataSourceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public Builder setDataSource(io.kubernetes.client.proto.V1.TypedLocalObjectReference value) {
        if (dataSourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dataSource_ = value;
          onChanged();
        } else {
          dataSourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public Builder setDataSource(
          io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder builderForValue) {
        if (dataSourceBuilder_ == null) {
          dataSource_ = builderForValue.build();
          onChanged();
        } else {
          dataSourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public Builder mergeDataSource(
          io.kubernetes.client.proto.V1.TypedLocalObjectReference value) {
        if (dataSourceBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && dataSource_ != null
              && dataSource_
                  != io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance()) {
            dataSource_ =
                io.kubernetes.client.proto.V1.TypedLocalObjectReference.newBuilder(dataSource_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            dataSource_ = value;
          }
          onChanged();
        } else {
          dataSourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public Builder clearDataSource() {
        if (dataSourceBuilder_ == null) {
          dataSource_ = null;
          onChanged();
        } else {
          dataSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder
          getDataSourceBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getDataSourceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      public io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder
          getDataSourceOrBuilder() {
        if (dataSourceBuilder_ != null) {
          return dataSourceBuilder_.getMessageOrBuilder();
        } else {
          return dataSource_ == null
              ? io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance()
              : dataSource_;
        }
      }
      /**
       *
       *
       * <pre>
       * This field requires the VolumeSnapshotDataSource alpha feature gate to be
       * enabled and currently VolumeSnapshot is the only supported data source.
       * If the provisioner can support VolumeSnapshot data source, it will create
       * a new volume and data will be restored to the volume at the same time.
       * If the provisioner does not support VolumeSnapshot data source, volume will
       * not be created and the failure will be reported as an event.
       * In the future, we plan to support more data source types and the behavior
       * of the provisioner may change.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.TypedLocalObjectReference dataSource = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.TypedLocalObjectReference,
              io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder>
          getDataSourceFieldBuilder() {
        if (dataSourceBuilder_ == null) {
          dataSourceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.TypedLocalObjectReference,
                  io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder>(
                  getDataSource(), getParentForChildren(), isClean());
          dataSource_ = null;
        }
        return dataSourceBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaimSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaimSpec)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaimSpec> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaimSpec>() {
          @java.lang.Override
          public PersistentVolumeClaimSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaimSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaimSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaimSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaimStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    boolean hasPhase();
    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    java.lang.String getPhase();
    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    com.google.protobuf.ByteString getPhaseBytes();

    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    java.util.List<java.lang.String> getAccessModesList();
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    int getAccessModesCount();
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    java.lang.String getAccessModes(int index);
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    com.google.protobuf.ByteString getAccessModesBytes(int index);

    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    int getCapacityCount();
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    boolean containsCapacity(java.lang.String key);
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacity();
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacityMap();
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
        getConditionsList();
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition getConditions(int index);
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder getConditionsOrBuilder(
        int index);
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaimStatus is the current status of a persistent volume claim.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimStatus}
   */
  public static final class PersistentVolumeClaimStatus
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaimStatus)
      PersistentVolumeClaimStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaimStatus.newBuilder() to construct.
    private PersistentVolumeClaimStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaimStatus() {
      phase_ = "";
      accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      conditions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaimStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                phase_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  accessModes_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                accessModes_.add(bs);
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  capacity_ =
                      com.google.protobuf.MapField.newMapField(
                          CapacityDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000004;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    capacity__ =
                        input.readMessage(
                            CapacityDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                capacity_.getMutableMap().put(capacity__.getKey(), capacity__.getValue());
                break;
              }
            case 34:
              {
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  conditions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>();
                  mutable_bitField0_ |= 0x00000008;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          accessModes_ = accessModes_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 3:
          return internalGetCapacity();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder.class);
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private volatile java.lang.Object phase_;
    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public java.lang.String getPhase() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          phase_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Phase represents the current phase of PersistentVolumeClaim.
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public com.google.protobuf.ByteString getPhaseBytes() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        phase_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ACCESSMODES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList accessModes_;
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getAccessModesList() {
      return accessModes_;
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    public int getAccessModesCount() {
      return accessModes_.size();
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    public java.lang.String getAccessModes(int index) {
      return accessModes_.get(index);
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains the actual access modes the volume backing the PVC has.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 2;</code>
     */
    public com.google.protobuf.ByteString getAccessModesBytes(int index) {
      return accessModes_.getByteString(index);
    }

    public static final int CAPACITY_FIELD_NUMBER = 3;

    private static final class CapacityDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        capacity_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetCapacity() {
      if (capacity_ == null) {
        return com.google.protobuf.MapField.emptyMapField(CapacityDefaultEntryHolder.defaultEntry);
      }
      return capacity_;
    }

    public int getCapacityCount() {
      return internalGetCapacity().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    public boolean containsCapacity(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetCapacity().getMap().containsKey(key);
    }
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacity() {
      return getCapacityMap();
    }
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacityMap() {
      return internalGetCapacity().getMap();
    }
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Represents the actual resources of the underlying volume.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CONDITIONS_FIELD_NUMBER = 4;
    private java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
        conditions_;
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
        getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Current Condition of persistent volume claim. If underlying persistent volume is being
     * resized then the Condition will be set to 'ResizeStarted'.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder
        getConditionsOrBuilder(int index) {
      return conditions_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phase_);
      }
      for (int i = 0; i < accessModes_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, accessModes_.getRaw(i));
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetCapacity(), CapacityDefaultEntryHolder.defaultEntry, 3);
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(4, conditions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, phase_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < accessModes_.size(); i++) {
          dataSize += computeStringSizeNoTag(accessModes_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getAccessModesList().size();
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetCapacity().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            capacity__ =
                CapacityDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, capacity__);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, conditions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus) obj;

      boolean result = true;
      result = result && (hasPhase() == other.hasPhase());
      if (hasPhase()) {
        result = result && getPhase().equals(other.getPhase());
      }
      result = result && getAccessModesList().equals(other.getAccessModesList());
      result = result && internalGetCapacity().equals(other.internalGetCapacity());
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPhase()) {
        hash = (37 * hash) + PHASE_FIELD_NUMBER;
        hash = (53 * hash) + getPhase().hashCode();
      }
      if (getAccessModesCount() > 0) {
        hash = (37 * hash) + ACCESSMODES_FIELD_NUMBER;
        hash = (53 * hash) + getAccessModesList().hashCode();
      }
      if (!internalGetCapacity().getMap().isEmpty()) {
        hash = (37 * hash) + CAPACITY_FIELD_NUMBER;
        hash = (53 * hash) + internalGetCapacity().hashCode();
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimStatus is the current status of a persistent volume claim.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaimStatus)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 3:
            return internalGetCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 3:
            return internalGetMutableCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableCapacity().clear();
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          accessModes_ = accessModes_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.accessModes_ = accessModes_;
        result.capacity_ = internalGetCapacity();
        result.capacity_.makeImmutable();
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus.getDefaultInstance())
          return this;
        if (other.hasPhase()) {
          bitField0_ |= 0x00000001;
          phase_ = other.phase_;
          onChanged();
        }
        if (!other.accessModes_.isEmpty()) {
          if (accessModes_.isEmpty()) {
            accessModes_ = other.accessModes_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureAccessModesIsMutable();
            accessModes_.addAll(other.accessModes_);
          }
          onChanged();
        }
        internalGetMutableCapacity().mergeFrom(other.internalGetCapacity());
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000008);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object phase_ = "";
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public java.lang.String getPhase() {
        java.lang.Object ref = phase_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phase_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public com.google.protobuf.ByteString getPhaseBytes() {
        java.lang.Object ref = phase_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          phase_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhase(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = getDefaultInstance().getPhase();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase represents the current phase of PersistentVolumeClaim.
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhaseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList accessModes_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureAccessModesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          accessModes_ = new com.google.protobuf.LazyStringArrayList(accessModes_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getAccessModesList() {
        return accessModes_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public int getAccessModesCount() {
        return accessModes_.size();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public java.lang.String getAccessModes(int index) {
        return accessModes_.get(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public com.google.protobuf.ByteString getAccessModesBytes(int index) {
        return accessModes_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public Builder setAccessModes(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public Builder addAccessModes(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public Builder addAllAccessModes(java.lang.Iterable<java.lang.String> values) {
        ensureAccessModesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, accessModes_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public Builder clearAccessModes() {
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains the actual access modes the volume backing the PVC has.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 2;</code>
       */
      public Builder addAccessModesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          capacity_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetCapacity() {
        if (capacity_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              CapacityDefaultEntryHolder.defaultEntry);
        }
        return capacity_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableCapacity() {
        onChanged();
        ;
        if (capacity_ == null) {
          capacity_ =
              com.google.protobuf.MapField.newMapField(CapacityDefaultEntryHolder.defaultEntry);
        }
        if (!capacity_.isMutable()) {
          capacity_ = capacity_.copy();
        }
        return capacity_;
      }

      public int getCapacityCount() {
        return internalGetCapacity().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public boolean containsCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetCapacity().getMap().containsKey(key);
      }
      /** Use {@link #getCapacityMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacity() {
        return getCapacityMap();
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacityMap() {
        return internalGetCapacity().getMap();
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearCapacity() {
        internalGetMutableCapacity().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public Builder removeCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableCapacity() {
        return internalGetMutableCapacity().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public Builder putCapacity(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the actual resources of the underlying volume.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 3;
       * </code>
       */
      public Builder putAllCapacity(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableCapacity().getMutableMap().putAll(values);
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
          conditions_ = java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
          conditions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>(
                  conditions_);
          bitField0_ |= 0x00000008;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
          getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder setConditions(
          int index,
          io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder addConditions(
          int index,
          io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition>
              values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder
          getConditionsBuilder(int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder
          getConditionsOrBuilder(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder
          addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder
          addConditionsBuilder(int index) {
        return getConditionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Current Condition of persistent volume claim. If underlying persistent volume is being
       * resized then the Condition will be set to 'ResizeStarted'.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolumeClaimCondition conditions = 4;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimCondition.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000008) == 0x00000008),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaimStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaimStatus)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaimStatus> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaimStatus>() {
          @java.lang.Override
          public PersistentVolumeClaimStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaimStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaimStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaimStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeClaimVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    boolean hasClaimName();
    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    java.lang.String getClaimName();
    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    com.google.protobuf.ByteString getClaimNameBytes();

    /**
     *
     *
     * <pre>
     * Will force the ReadOnly setting in VolumeMounts.
     * Default false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Will force the ReadOnly setting in VolumeMounts.
     * Default false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
   * This volume finds the bound PV and mounts that volume for the pod. A
   * PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another
   * type of volume that is owned by someone else (the system).
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource}
   */
  public static final class PersistentVolumeClaimVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource)
      PersistentVolumeClaimVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeClaimVolumeSource.newBuilder() to construct.
    private PersistentVolumeClaimVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeClaimVolumeSource() {
      claimName_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeClaimVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                claimName_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.class,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int CLAIMNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object claimName_;
    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    public boolean hasClaimName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    public java.lang.String getClaimName() {
      java.lang.Object ref = claimName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          claimName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * </pre>
     *
     * <code>optional string claimName = 1;</code>
     */
    public com.google.protobuf.ByteString getClaimNameBytes() {
      java.lang.Object ref = claimName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        claimName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 2;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Will force the ReadOnly setting in VolumeMounts.
     * Default false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Will force the ReadOnly setting in VolumeMounts.
     * Default false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, claimName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, claimName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource other =
          (io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource) obj;

      boolean result = true;
      result = result && (hasClaimName() == other.hasClaimName());
      if (hasClaimName()) {
        result = result && getClaimName().equals(other.getClaimName());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasClaimName()) {
        hash = (37 * hash) + CLAIMNAME_FIELD_NUMBER;
        hash = (53 * hash) + getClaimName().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource references the user's PVC in the same namespace.
     * This volume finds the bound PV and mounts that volume for the pod. A
     * PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another
     * type of volume that is owned by someone else (the system).
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource)
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.class,
                io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        claimName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource build() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource result =
            new io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.claimName_ = claimName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance())
          return this;
        if (other.hasClaimName()) {
          bitField0_ |= 0x00000001;
          claimName_ = other.claimName_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object claimName_ = "";
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public boolean hasClaimName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public java.lang.String getClaimName() {
        java.lang.Object ref = claimName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            claimName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public com.google.protobuf.ByteString getClaimNameBytes() {
        java.lang.Object ref = claimName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          claimName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public Builder setClaimName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        claimName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public Builder clearClaimName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        claimName_ = getDefaultInstance().getClaimName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * </pre>
       *
       * <code>optional string claimName = 1;</code>
       */
      public Builder setClaimNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        claimName_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Will force the ReadOnly setting in VolumeMounts.
       * Default false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Will force the ReadOnly setting in VolumeMounts.
       * Default false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Will force the ReadOnly setting in VolumeMounts.
       * Default false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000002;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Will force the ReadOnly setting in VolumeMounts.
       * Default false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeClaimVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeClaimVolumeSource>() {
          @java.lang.Override
          public PersistentVolumeClaimVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeClaimVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeClaimVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeClaimVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PersistentVolume> getItemsList();
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolume getItems(int index);
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeList is a list of PersistentVolume items.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeList}
   */
  public static final class PersistentVolumeList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeList)
      PersistentVolumeListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeList.newBuilder() to construct.
    private PersistentVolumeList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PersistentVolume>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolume.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeList.class,
              io.kubernetes.client.proto.V1.PersistentVolumeList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.PersistentVolume> items_;
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PersistentVolume> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolume getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of persistent volumes.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeList other =
          (io.kubernetes.client.proto.V1.PersistentVolumeList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PersistentVolumeList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeList is a list of PersistentVolume items.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeList)
        io.kubernetes.client.proto.V1.PersistentVolumeListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeList.class,
                io.kubernetes.client.proto.V1.PersistentVolumeList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeList build() {
        io.kubernetes.client.proto.V1.PersistentVolumeList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeList buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeList result =
            new io.kubernetes.client.proto.V1.PersistentVolumeList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeList) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeList other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PersistentVolume> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.PersistentVolume>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolume,
              io.kubernetes.client.proto.V1.PersistentVolume.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolume> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolume getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.PersistentVolume value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolume.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.PersistentVolume value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.PersistentVolume value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.PersistentVolume.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.PersistentVolume.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PersistentVolume> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolume.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolume.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PersistentVolume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolume.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PersistentVolume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of persistent volumes.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PersistentVolume items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PersistentVolume.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolume,
              io.kubernetes.client.proto.V1.PersistentVolume.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolume,
                  io.kubernetes.client.proto.V1.PersistentVolume.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeList)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeList();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeList> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeList>() {
          @java.lang.Override
          public PersistentVolumeList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    boolean hasGcePersistentDisk();
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk();
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
        getGcePersistentDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    boolean hasAwsElasticBlockStore();
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource getAwsElasticBlockStore();
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
        getAwsElasticBlockStoreOrBuilder();

    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    boolean hasHostPath();
    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath();
    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder();

    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    boolean hasGlusterfs();
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource getGlusterfs();
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder getGlusterfsOrBuilder();

    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    boolean hasNfs();
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    io.kubernetes.client.proto.V1.NFSVolumeSource getNfs();
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder();

    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    boolean hasRbd();
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getRbd();
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder getRbdOrBuilder();

    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    boolean hasIscsi();
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getIscsi();
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder getIscsiOrBuilder();

    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    boolean hasCinder();
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    io.kubernetes.client.proto.V1.CinderPersistentVolumeSource getCinder();
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder getCinderOrBuilder();

    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    boolean hasCephfs();
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource getCephfs();
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder getCephfsOrBuilder();

    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    boolean hasFc();
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    io.kubernetes.client.proto.V1.FCVolumeSource getFc();
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder();

    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    boolean hasFlocker();
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker();
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder();

    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    boolean hasFlexVolume();
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getFlexVolume();
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder getFlexVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    boolean hasAzureFile();
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource getAzureFile();
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder getAzureFileOrBuilder();

    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    boolean hasVsphereVolume();
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume();
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
        getVsphereVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    boolean hasQuobyte();
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte();
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder();

    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    boolean hasAzureDisk();
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk();
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    boolean hasPhotonPersistentDisk();
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource getPhotonPersistentDisk();
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
        getPhotonPersistentDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    boolean hasPortworxVolume();
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume();
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder getPortworxVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    boolean hasScaleIO();
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource getScaleIO();
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder getScaleIOOrBuilder();

    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    boolean hasLocal();
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    io.kubernetes.client.proto.V1.LocalVolumeSource getLocal();
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder getLocalOrBuilder();

    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    boolean hasStorageos();
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource getStorageos();
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder getStorageosOrBuilder();

    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    boolean hasCsi();
    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getCsi();
    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder getCsiOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeSource is similar to VolumeSource but meant for the
   * administrator who creates PVs. Exactly one of its members must be set.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeSource}
   */
  public static final class PersistentVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeSource)
      PersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeSource.newBuilder() to construct.
    private PersistentVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeSource() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = gcePersistentDisk_.toBuilder();
                }
                gcePersistentDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(gcePersistentDisk_);
                  gcePersistentDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = awsElasticBlockStore_.toBuilder();
                }
                awsElasticBlockStore_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(awsElasticBlockStore_);
                  awsElasticBlockStore_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = hostPath_.toBuilder();
                }
                hostPath_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.HostPathVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(hostPath_);
                  hostPath_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = glusterfs_.toBuilder();
                }
                glusterfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(glusterfs_);
                  glusterfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.NFSVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = nfs_.toBuilder();
                }
                nfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NFSVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nfs_);
                  nfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = rbd_.toBuilder();
                }
                rbd_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(rbd_);
                  rbd_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = iscsi_.toBuilder();
                }
                iscsi_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(iscsi_);
                  iscsi_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            case 66:
              {
                io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  subBuilder = cinder_.toBuilder();
                }
                cinder_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(cinder_);
                  cinder_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000080;
                break;
              }
            case 74:
              {
                io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = cephfs_.toBuilder();
                }
                cephfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(cephfs_);
                  cephfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.V1.FCVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  subBuilder = fc_.toBuilder();
                }
                fc_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FCVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fc_);
                  fc_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000200;
                break;
              }
            case 90:
              {
                io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  subBuilder = flocker_.toBuilder();
                }
                flocker_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FlockerVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(flocker_);
                  flocker_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000400;
                break;
              }
            case 98:
              {
                io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000800) == 0x00000800)) {
                  subBuilder = flexVolume_.toBuilder();
                }
                flexVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(flexVolume_);
                  flexVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000800;
                break;
              }
            case 106:
              {
                io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00001000) == 0x00001000)) {
                  subBuilder = azureFile_.toBuilder();
                }
                azureFile_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(azureFile_);
                  azureFile_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00001000;
                break;
              }
            case 114:
              {
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00002000) == 0x00002000)) {
                  subBuilder = vsphereVolume_.toBuilder();
                }
                vsphereVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(vsphereVolume_);
                  vsphereVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00002000;
                break;
              }
            case 122:
              {
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00004000) == 0x00004000)) {
                  subBuilder = quobyte_.toBuilder();
                }
                quobyte_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.QuobyteVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(quobyte_);
                  quobyte_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00004000;
                break;
              }
            case 130:
              {
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00008000) == 0x00008000)) {
                  subBuilder = azureDisk_.toBuilder();
                }
                azureDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AzureDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(azureDisk_);
                  azureDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00008000;
                break;
              }
            case 138:
              {
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00010000) == 0x00010000)) {
                  subBuilder = photonPersistentDisk_.toBuilder();
                }
                photonPersistentDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(photonPersistentDisk_);
                  photonPersistentDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00010000;
                break;
              }
            case 146:
              {
                io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00020000) == 0x00020000)) {
                  subBuilder = portworxVolume_.toBuilder();
                }
                portworxVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PortworxVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(portworxVolume_);
                  portworxVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00020000;
                break;
              }
            case 154:
              {
                io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00040000) == 0x00040000)) {
                  subBuilder = scaleIO_.toBuilder();
                }
                scaleIO_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(scaleIO_);
                  scaleIO_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00040000;
                break;
              }
            case 162:
              {
                io.kubernetes.client.proto.V1.LocalVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00080000) == 0x00080000)) {
                  subBuilder = local_.toBuilder();
                }
                local_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(local_);
                  local_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00080000;
                break;
              }
            case 170:
              {
                io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00100000) == 0x00100000)) {
                  subBuilder = storageos_.toBuilder();
                }
                storageos_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(storageos_);
                  storageos_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00100000;
                break;
              }
            case 178:
              {
                io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00200000) == 0x00200000)) {
                  subBuilder = csi_.toBuilder();
                }
                csi_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(csi_);
                  csi_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00200000;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int GCEPERSISTENTDISK_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource gcePersistentDisk_;
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    public boolean hasGcePersistentDisk() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk() {
      return gcePersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
          : gcePersistentDisk_;
    }
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
        getGcePersistentDiskOrBuilder() {
      return gcePersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
          : gcePersistentDisk_;
    }

    public static final int AWSELASTICBLOCKSTORE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore_;
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    public boolean hasAwsElasticBlockStore() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
        getAwsElasticBlockStore() {
      return awsElasticBlockStore_ == null
          ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
          : awsElasticBlockStore_;
    }
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
        getAwsElasticBlockStoreOrBuilder() {
      return awsElasticBlockStore_ == null
          ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
          : awsElasticBlockStore_;
    }

    public static final int HOSTPATH_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.HostPathVolumeSource hostPath_;
    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    public boolean hasHostPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    public io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath() {
      return hostPath_ == null
          ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
          : hostPath_;
    }
    /**
     *
     *
     * <pre>
     * HostPath represents a directory on the host.
     * Provisioned by a developer or tester.
     * This is useful for single-node development and testing only!
     * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
     */
    public io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder() {
      return hostPath_ == null
          ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
          : hostPath_;
    }

    public static final int GLUSTERFS_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource glusterfs_;
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    public boolean hasGlusterfs() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource getGlusterfs() {
      return glusterfs_ == null
          ? io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance()
          : glusterfs_;
    }
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs volume that is attached to a host and
     * exposed to the pod. Provisioned by an admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;</code>
     */
    public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder
        getGlusterfsOrBuilder() {
      return glusterfs_ == null
          ? io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance()
          : glusterfs_;
    }

    public static final int NFS_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.NFSVolumeSource nfs_;
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    public boolean hasNfs() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    public io.kubernetes.client.proto.V1.NFSVolumeSource getNfs() {
      return nfs_ == null
          ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
          : nfs_;
    }
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host. Provisioned by an admin.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
     */
    public io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder() {
      return nfs_ == null
          ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
          : nfs_;
    }

    public static final int RBD_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1.RBDPersistentVolumeSource rbd_;
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    public boolean hasRbd() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getRbd() {
      return rbd_ == null
          ? io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance()
          : rbd_;
    }
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
     */
    public io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder getRbdOrBuilder() {
      return rbd_ == null
          ? io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance()
          : rbd_;
    }

    public static final int ISCSI_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource iscsi_;
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    public boolean hasIscsi() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getIscsi() {
      return iscsi_ == null
          ? io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance()
          : iscsi_;
    }
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
     */
    public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder getIscsiOrBuilder() {
      return iscsi_ == null
          ? io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance()
          : iscsi_;
    }

    public static final int CINDER_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.V1.CinderPersistentVolumeSource cinder_;
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    public boolean hasCinder() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource getCinder() {
      return cinder_ == null
          ? io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance()
          : cinder_;
    }
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
     */
    public io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder
        getCinderOrBuilder() {
      return cinder_ == null
          ? io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance()
          : cinder_;
    }

    public static final int CEPHFS_FIELD_NUMBER = 9;
    private io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource cephfs_;
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    public boolean hasCephfs() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource getCephfs() {
      return cephfs_ == null
          ? io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance()
          : cephfs_;
    }
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
     */
    public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder
        getCephfsOrBuilder() {
      return cephfs_ == null
          ? io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance()
          : cephfs_;
    }

    public static final int FC_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.V1.FCVolumeSource fc_;
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    public boolean hasFc() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    public io.kubernetes.client.proto.V1.FCVolumeSource getFc() {
      return fc_ == null ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance() : fc_;
    }
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
     */
    public io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder() {
      return fc_ == null ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance() : fc_;
    }

    public static final int FLOCKER_FIELD_NUMBER = 11;
    private io.kubernetes.client.proto.V1.FlockerVolumeSource flocker_;
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    public boolean hasFlocker() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    public io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker() {
      return flocker_ == null
          ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
          : flocker_;
    }
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
     */
    public io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder() {
      return flocker_ == null
          ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
          : flocker_;
    }

    public static final int FLEXVOLUME_FIELD_NUMBER = 12;
    private io.kubernetes.client.proto.V1.FlexPersistentVolumeSource flexVolume_;
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    public boolean hasFlexVolume() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getFlexVolume() {
      return flexVolume_ == null
          ? io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance()
          : flexVolume_;
    }
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
     */
    public io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder
        getFlexVolumeOrBuilder() {
      return flexVolume_ == null
          ? io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance()
          : flexVolume_;
    }

    public static final int AZUREFILE_FIELD_NUMBER = 13;
    private io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource azureFile_;
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    public boolean hasAzureFile() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource getAzureFile() {
      return azureFile_ == null
          ? io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance()
          : azureFile_;
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;</code>
     */
    public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder
        getAzureFileOrBuilder() {
      return azureFile_ == null
          ? io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance()
          : azureFile_;
    }

    public static final int VSPHEREVOLUME_FIELD_NUMBER = 14;
    private io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource vsphereVolume_;
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    public boolean hasVsphereVolume() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume() {
      return vsphereVolume_ == null
          ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
          : vsphereVolume_;
    }
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
     * </code>
     */
    public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
        getVsphereVolumeOrBuilder() {
      return vsphereVolume_ == null
          ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
          : vsphereVolume_;
    }

    public static final int QUOBYTE_FIELD_NUMBER = 15;
    private io.kubernetes.client.proto.V1.QuobyteVolumeSource quobyte_;
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    public boolean hasQuobyte() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    public io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte() {
      return quobyte_ == null
          ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
          : quobyte_;
    }
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
     */
    public io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder() {
      return quobyte_ == null
          ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
          : quobyte_;
    }

    public static final int AZUREDISK_FIELD_NUMBER = 16;
    private io.kubernetes.client.proto.V1.AzureDiskVolumeSource azureDisk_;
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    public boolean hasAzureDisk() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk() {
      return azureDisk_ == null
          ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
          : azureDisk_;
    }
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
     */
    public io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder() {
      return azureDisk_ == null
          ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
          : azureDisk_;
    }

    public static final int PHOTONPERSISTENTDISK_FIELD_NUMBER = 17;
    private io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource photonPersistentDisk_;
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    public boolean hasPhotonPersistentDisk() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
        getPhotonPersistentDisk() {
      return photonPersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
          : photonPersistentDisk_;
    }
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
        getPhotonPersistentDiskOrBuilder() {
      return photonPersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
          : photonPersistentDisk_;
    }

    public static final int PORTWORXVOLUME_FIELD_NUMBER = 18;
    private io.kubernetes.client.proto.V1.PortworxVolumeSource portworxVolume_;
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    public boolean hasPortworxVolume() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    public io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume() {
      return portworxVolume_ == null
          ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
          : portworxVolume_;
    }
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
     */
    public io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder
        getPortworxVolumeOrBuilder() {
      return portworxVolume_ == null
          ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
          : portworxVolume_;
    }

    public static final int SCALEIO_FIELD_NUMBER = 19;
    private io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource scaleIO_;
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    public boolean hasScaleIO() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource getScaleIO() {
      return scaleIO_ == null
          ? io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance()
          : scaleIO_;
    }
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
     */
    public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder
        getScaleIOOrBuilder() {
      return scaleIO_ == null
          ? io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance()
          : scaleIO_;
    }

    public static final int LOCAL_FIELD_NUMBER = 20;
    private io.kubernetes.client.proto.V1.LocalVolumeSource local_;
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    public boolean hasLocal() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    public io.kubernetes.client.proto.V1.LocalVolumeSource getLocal() {
      return local_ == null
          ? io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance()
          : local_;
    }
    /**
     *
     *
     * <pre>
     * Local represents directly-attached storage with node affinity
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
     */
    public io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder getLocalOrBuilder() {
      return local_ == null
          ? io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance()
          : local_;
    }

    public static final int STORAGEOS_FIELD_NUMBER = 21;
    private io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource storageos_;
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    public boolean hasStorageos() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource getStorageos() {
      return storageos_ == null
          ? io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance()
          : storageos_;
    }
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
     * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;</code>
     */
    public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder
        getStorageosOrBuilder() {
      return storageos_ == null
          ? io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance()
          : storageos_;
    }

    public static final int CSI_FIELD_NUMBER = 22;
    private io.kubernetes.client.proto.V1.CSIPersistentVolumeSource csi_;
    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    public boolean hasCsi() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getCsi() {
      return csi_ == null
          ? io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance()
          : csi_;
    }
    /**
     *
     *
     * <pre>
     * CSI represents storage that handled by an external CSI driver (Beta feature).
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
     */
    public io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder getCsiOrBuilder() {
      return csi_ == null
          ? io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance()
          : csi_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getGcePersistentDisk());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getAwsElasticBlockStore());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getHostPath());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getGlusterfs());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getNfs());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, getRbd());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, getIscsi());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, getCinder());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, getCephfs());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, getFc());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, getFlocker());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, getFlexVolume());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(13, getAzureFile());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(14, getVsphereVolume());
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(15, getQuobyte());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(16, getAzureDisk());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(17, getPhotonPersistentDisk());
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(18, getPortworxVolume());
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(19, getScaleIO());
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(20, getLocal());
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(21, getStorageos());
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(22, getCsi());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getGcePersistentDisk());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(2, getAwsElasticBlockStore());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getHostPath());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getGlusterfs());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getNfs());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getRbd());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getIscsi());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getCinder());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getCephfs());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(10, getFc());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getFlocker());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getFlexVolume());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getAzureFile());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getVsphereVolume());
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getQuobyte());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getAzureDisk());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(17, getPhotonPersistentDisk());
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getPortworxVolume());
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(19, getScaleIO());
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, getLocal());
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(21, getStorageos());
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getCsi());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.PersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasGcePersistentDisk() == other.hasGcePersistentDisk());
      if (hasGcePersistentDisk()) {
        result = result && getGcePersistentDisk().equals(other.getGcePersistentDisk());
      }
      result = result && (hasAwsElasticBlockStore() == other.hasAwsElasticBlockStore());
      if (hasAwsElasticBlockStore()) {
        result = result && getAwsElasticBlockStore().equals(other.getAwsElasticBlockStore());
      }
      result = result && (hasHostPath() == other.hasHostPath());
      if (hasHostPath()) {
        result = result && getHostPath().equals(other.getHostPath());
      }
      result = result && (hasGlusterfs() == other.hasGlusterfs());
      if (hasGlusterfs()) {
        result = result && getGlusterfs().equals(other.getGlusterfs());
      }
      result = result && (hasNfs() == other.hasNfs());
      if (hasNfs()) {
        result = result && getNfs().equals(other.getNfs());
      }
      result = result && (hasRbd() == other.hasRbd());
      if (hasRbd()) {
        result = result && getRbd().equals(other.getRbd());
      }
      result = result && (hasIscsi() == other.hasIscsi());
      if (hasIscsi()) {
        result = result && getIscsi().equals(other.getIscsi());
      }
      result = result && (hasCinder() == other.hasCinder());
      if (hasCinder()) {
        result = result && getCinder().equals(other.getCinder());
      }
      result = result && (hasCephfs() == other.hasCephfs());
      if (hasCephfs()) {
        result = result && getCephfs().equals(other.getCephfs());
      }
      result = result && (hasFc() == other.hasFc());
      if (hasFc()) {
        result = result && getFc().equals(other.getFc());
      }
      result = result && (hasFlocker() == other.hasFlocker());
      if (hasFlocker()) {
        result = result && getFlocker().equals(other.getFlocker());
      }
      result = result && (hasFlexVolume() == other.hasFlexVolume());
      if (hasFlexVolume()) {
        result = result && getFlexVolume().equals(other.getFlexVolume());
      }
      result = result && (hasAzureFile() == other.hasAzureFile());
      if (hasAzureFile()) {
        result = result && getAzureFile().equals(other.getAzureFile());
      }
      result = result && (hasVsphereVolume() == other.hasVsphereVolume());
      if (hasVsphereVolume()) {
        result = result && getVsphereVolume().equals(other.getVsphereVolume());
      }
      result = result && (hasQuobyte() == other.hasQuobyte());
      if (hasQuobyte()) {
        result = result && getQuobyte().equals(other.getQuobyte());
      }
      result = result && (hasAzureDisk() == other.hasAzureDisk());
      if (hasAzureDisk()) {
        result = result && getAzureDisk().equals(other.getAzureDisk());
      }
      result = result && (hasPhotonPersistentDisk() == other.hasPhotonPersistentDisk());
      if (hasPhotonPersistentDisk()) {
        result = result && getPhotonPersistentDisk().equals(other.getPhotonPersistentDisk());
      }
      result = result && (hasPortworxVolume() == other.hasPortworxVolume());
      if (hasPortworxVolume()) {
        result = result && getPortworxVolume().equals(other.getPortworxVolume());
      }
      result = result && (hasScaleIO() == other.hasScaleIO());
      if (hasScaleIO()) {
        result = result && getScaleIO().equals(other.getScaleIO());
      }
      result = result && (hasLocal() == other.hasLocal());
      if (hasLocal()) {
        result = result && getLocal().equals(other.getLocal());
      }
      result = result && (hasStorageos() == other.hasStorageos());
      if (hasStorageos()) {
        result = result && getStorageos().equals(other.getStorageos());
      }
      result = result && (hasCsi() == other.hasCsi());
      if (hasCsi()) {
        result = result && getCsi().equals(other.getCsi());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGcePersistentDisk()) {
        hash = (37 * hash) + GCEPERSISTENTDISK_FIELD_NUMBER;
        hash = (53 * hash) + getGcePersistentDisk().hashCode();
      }
      if (hasAwsElasticBlockStore()) {
        hash = (37 * hash) + AWSELASTICBLOCKSTORE_FIELD_NUMBER;
        hash = (53 * hash) + getAwsElasticBlockStore().hashCode();
      }
      if (hasHostPath()) {
        hash = (37 * hash) + HOSTPATH_FIELD_NUMBER;
        hash = (53 * hash) + getHostPath().hashCode();
      }
      if (hasGlusterfs()) {
        hash = (37 * hash) + GLUSTERFS_FIELD_NUMBER;
        hash = (53 * hash) + getGlusterfs().hashCode();
      }
      if (hasNfs()) {
        hash = (37 * hash) + NFS_FIELD_NUMBER;
        hash = (53 * hash) + getNfs().hashCode();
      }
      if (hasRbd()) {
        hash = (37 * hash) + RBD_FIELD_NUMBER;
        hash = (53 * hash) + getRbd().hashCode();
      }
      if (hasIscsi()) {
        hash = (37 * hash) + ISCSI_FIELD_NUMBER;
        hash = (53 * hash) + getIscsi().hashCode();
      }
      if (hasCinder()) {
        hash = (37 * hash) + CINDER_FIELD_NUMBER;
        hash = (53 * hash) + getCinder().hashCode();
      }
      if (hasCephfs()) {
        hash = (37 * hash) + CEPHFS_FIELD_NUMBER;
        hash = (53 * hash) + getCephfs().hashCode();
      }
      if (hasFc()) {
        hash = (37 * hash) + FC_FIELD_NUMBER;
        hash = (53 * hash) + getFc().hashCode();
      }
      if (hasFlocker()) {
        hash = (37 * hash) + FLOCKER_FIELD_NUMBER;
        hash = (53 * hash) + getFlocker().hashCode();
      }
      if (hasFlexVolume()) {
        hash = (37 * hash) + FLEXVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getFlexVolume().hashCode();
      }
      if (hasAzureFile()) {
        hash = (37 * hash) + AZUREFILE_FIELD_NUMBER;
        hash = (53 * hash) + getAzureFile().hashCode();
      }
      if (hasVsphereVolume()) {
        hash = (37 * hash) + VSPHEREVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getVsphereVolume().hashCode();
      }
      if (hasQuobyte()) {
        hash = (37 * hash) + QUOBYTE_FIELD_NUMBER;
        hash = (53 * hash) + getQuobyte().hashCode();
      }
      if (hasAzureDisk()) {
        hash = (37 * hash) + AZUREDISK_FIELD_NUMBER;
        hash = (53 * hash) + getAzureDisk().hashCode();
      }
      if (hasPhotonPersistentDisk()) {
        hash = (37 * hash) + PHOTONPERSISTENTDISK_FIELD_NUMBER;
        hash = (53 * hash) + getPhotonPersistentDisk().hashCode();
      }
      if (hasPortworxVolume()) {
        hash = (37 * hash) + PORTWORXVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getPortworxVolume().hashCode();
      }
      if (hasScaleIO()) {
        hash = (37 * hash) + SCALEIO_FIELD_NUMBER;
        hash = (53 * hash) + getScaleIO().hashCode();
      }
      if (hasLocal()) {
        hash = (37 * hash) + LOCAL_FIELD_NUMBER;
        hash = (53 * hash) + getLocal().hashCode();
      }
      if (hasStorageos()) {
        hash = (37 * hash) + STORAGEOS_FIELD_NUMBER;
        hash = (53 * hash) + getStorageos().hashCode();
      }
      if (hasCsi()) {
        hash = (37 * hash) + CSI_FIELD_NUMBER;
        hash = (53 * hash) + getCsi().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeSource is similar to VolumeSource but meant for the
     * administrator who creates PVs. Exactly one of its members must be set.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeSource)
        io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getGcePersistentDiskFieldBuilder();
          getAwsElasticBlockStoreFieldBuilder();
          getHostPathFieldBuilder();
          getGlusterfsFieldBuilder();
          getNfsFieldBuilder();
          getRbdFieldBuilder();
          getIscsiFieldBuilder();
          getCinderFieldBuilder();
          getCephfsFieldBuilder();
          getFcFieldBuilder();
          getFlockerFieldBuilder();
          getFlexVolumeFieldBuilder();
          getAzureFileFieldBuilder();
          getVsphereVolumeFieldBuilder();
          getQuobyteFieldBuilder();
          getAzureDiskFieldBuilder();
          getPhotonPersistentDiskFieldBuilder();
          getPortworxVolumeFieldBuilder();
          getScaleIOFieldBuilder();
          getLocalFieldBuilder();
          getStorageosFieldBuilder();
          getCsiFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = null;
        } else {
          gcePersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = null;
        } else {
          awsElasticBlockStoreBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (hostPathBuilder_ == null) {
          hostPath_ = null;
        } else {
          hostPathBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (glusterfsBuilder_ == null) {
          glusterfs_ = null;
        } else {
          glusterfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (nfsBuilder_ == null) {
          nfs_ = null;
        } else {
          nfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (rbdBuilder_ == null) {
          rbd_ = null;
        } else {
          rbdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (iscsiBuilder_ == null) {
          iscsi_ = null;
        } else {
          iscsiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (cinderBuilder_ == null) {
          cinder_ = null;
        } else {
          cinderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (cephfsBuilder_ == null) {
          cephfs_ = null;
        } else {
          cephfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (fcBuilder_ == null) {
          fc_ = null;
        } else {
          fcBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (flockerBuilder_ == null) {
          flocker_ = null;
        } else {
          flockerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = null;
        } else {
          flexVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (azureFileBuilder_ == null) {
          azureFile_ = null;
        } else {
          azureFileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = null;
        } else {
          vsphereVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        if (quobyteBuilder_ == null) {
          quobyte_ = null;
        } else {
          quobyteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        if (azureDiskBuilder_ == null) {
          azureDisk_ = null;
        } else {
          azureDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = null;
        } else {
          photonPersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = null;
        } else {
          portworxVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        if (scaleIOBuilder_ == null) {
          scaleIO_ = null;
        } else {
          scaleIOBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        if (localBuilder_ == null) {
          local_ = null;
        } else {
          localBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        if (storageosBuilder_ == null) {
          storageos_ = null;
        } else {
          storageosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        if (csiBuilder_ == null) {
          csi_ = null;
        } else {
          csiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.PersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.PersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (gcePersistentDiskBuilder_ == null) {
          result.gcePersistentDisk_ = gcePersistentDisk_;
        } else {
          result.gcePersistentDisk_ = gcePersistentDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (awsElasticBlockStoreBuilder_ == null) {
          result.awsElasticBlockStore_ = awsElasticBlockStore_;
        } else {
          result.awsElasticBlockStore_ = awsElasticBlockStoreBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (hostPathBuilder_ == null) {
          result.hostPath_ = hostPath_;
        } else {
          result.hostPath_ = hostPathBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (glusterfsBuilder_ == null) {
          result.glusterfs_ = glusterfs_;
        } else {
          result.glusterfs_ = glusterfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (nfsBuilder_ == null) {
          result.nfs_ = nfs_;
        } else {
          result.nfs_ = nfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (rbdBuilder_ == null) {
          result.rbd_ = rbd_;
        } else {
          result.rbd_ = rbdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (iscsiBuilder_ == null) {
          result.iscsi_ = iscsi_;
        } else {
          result.iscsi_ = iscsiBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (cinderBuilder_ == null) {
          result.cinder_ = cinder_;
        } else {
          result.cinder_ = cinderBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (cephfsBuilder_ == null) {
          result.cephfs_ = cephfs_;
        } else {
          result.cephfs_ = cephfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (fcBuilder_ == null) {
          result.fc_ = fc_;
        } else {
          result.fc_ = fcBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (flockerBuilder_ == null) {
          result.flocker_ = flocker_;
        } else {
          result.flocker_ = flockerBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (flexVolumeBuilder_ == null) {
          result.flexVolume_ = flexVolume_;
        } else {
          result.flexVolume_ = flexVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (azureFileBuilder_ == null) {
          result.azureFile_ = azureFile_;
        } else {
          result.azureFile_ = azureFileBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        if (vsphereVolumeBuilder_ == null) {
          result.vsphereVolume_ = vsphereVolume_;
        } else {
          result.vsphereVolume_ = vsphereVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        if (quobyteBuilder_ == null) {
          result.quobyte_ = quobyte_;
        } else {
          result.quobyte_ = quobyteBuilder_.build();
        }
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        if (azureDiskBuilder_ == null) {
          result.azureDisk_ = azureDisk_;
        } else {
          result.azureDisk_ = azureDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        if (photonPersistentDiskBuilder_ == null) {
          result.photonPersistentDisk_ = photonPersistentDisk_;
        } else {
          result.photonPersistentDisk_ = photonPersistentDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        if (portworxVolumeBuilder_ == null) {
          result.portworxVolume_ = portworxVolume_;
        } else {
          result.portworxVolume_ = portworxVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        if (scaleIOBuilder_ == null) {
          result.scaleIO_ = scaleIO_;
        } else {
          result.scaleIO_ = scaleIOBuilder_.build();
        }
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        if (localBuilder_ == null) {
          result.local_ = local_;
        } else {
          result.local_ = localBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        if (storageosBuilder_ == null) {
          result.storageos_ = storageos_;
        } else {
          result.storageos_ = storageosBuilder_.build();
        }
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        if (csiBuilder_ == null) {
          result.csi_ = csi_;
        } else {
          result.csi_ = csiBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasGcePersistentDisk()) {
          mergeGcePersistentDisk(other.getGcePersistentDisk());
        }
        if (other.hasAwsElasticBlockStore()) {
          mergeAwsElasticBlockStore(other.getAwsElasticBlockStore());
        }
        if (other.hasHostPath()) {
          mergeHostPath(other.getHostPath());
        }
        if (other.hasGlusterfs()) {
          mergeGlusterfs(other.getGlusterfs());
        }
        if (other.hasNfs()) {
          mergeNfs(other.getNfs());
        }
        if (other.hasRbd()) {
          mergeRbd(other.getRbd());
        }
        if (other.hasIscsi()) {
          mergeIscsi(other.getIscsi());
        }
        if (other.hasCinder()) {
          mergeCinder(other.getCinder());
        }
        if (other.hasCephfs()) {
          mergeCephfs(other.getCephfs());
        }
        if (other.hasFc()) {
          mergeFc(other.getFc());
        }
        if (other.hasFlocker()) {
          mergeFlocker(other.getFlocker());
        }
        if (other.hasFlexVolume()) {
          mergeFlexVolume(other.getFlexVolume());
        }
        if (other.hasAzureFile()) {
          mergeAzureFile(other.getAzureFile());
        }
        if (other.hasVsphereVolume()) {
          mergeVsphereVolume(other.getVsphereVolume());
        }
        if (other.hasQuobyte()) {
          mergeQuobyte(other.getQuobyte());
        }
        if (other.hasAzureDisk()) {
          mergeAzureDisk(other.getAzureDisk());
        }
        if (other.hasPhotonPersistentDisk()) {
          mergePhotonPersistentDisk(other.getPhotonPersistentDisk());
        }
        if (other.hasPortworxVolume()) {
          mergePortworxVolume(other.getPortworxVolume());
        }
        if (other.hasScaleIO()) {
          mergeScaleIO(other.getScaleIO());
        }
        if (other.hasLocal()) {
          mergeLocal(other.getLocal());
        }
        if (other.hasStorageos()) {
          mergeStorageos(other.getStorageos());
        }
        if (other.hasCsi()) {
          mergeCsi(other.getCsi());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource gcePersistentDisk_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>
          gcePersistentDiskBuilder_;
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public boolean hasGcePersistentDisk() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk() {
        if (gcePersistentDiskBuilder_ == null) {
          return gcePersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
              : gcePersistentDisk_;
        } else {
          return gcePersistentDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public Builder setGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource value) {
        if (gcePersistentDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gcePersistentDisk_ = value;
          onChanged();
        } else {
          gcePersistentDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public Builder setGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder builderForValue) {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = builderForValue.build();
          onChanged();
        } else {
          gcePersistentDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public Builder mergeGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource value) {
        if (gcePersistentDiskBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && gcePersistentDisk_ != null
              && gcePersistentDisk_
                  != io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource
                      .getDefaultInstance()) {
            gcePersistentDisk_ =
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.newBuilder(
                        gcePersistentDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            gcePersistentDisk_ = value;
          }
          onChanged();
        } else {
          gcePersistentDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public Builder clearGcePersistentDisk() {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = null;
          onChanged();
        } else {
          gcePersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder
          getGcePersistentDiskBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getGcePersistentDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
          getGcePersistentDiskOrBuilder() {
        if (gcePersistentDiskBuilder_ != null) {
          return gcePersistentDiskBuilder_.getMessageOrBuilder();
        } else {
          return gcePersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
              : gcePersistentDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>
          getGcePersistentDiskFieldBuilder() {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>(
                  getGcePersistentDisk(), getParentForChildren(), isClean());
          gcePersistentDisk_ = null;
        }
        return gcePersistentDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>
          awsElasticBlockStoreBuilder_;
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public boolean hasAwsElasticBlockStore() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
          getAwsElasticBlockStore() {
        if (awsElasticBlockStoreBuilder_ == null) {
          return awsElasticBlockStore_ == null
              ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
              : awsElasticBlockStore_;
        } else {
          return awsElasticBlockStoreBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public Builder setAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource value) {
        if (awsElasticBlockStoreBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          awsElasticBlockStore_ = value;
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public Builder setAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder builderForValue) {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = builderForValue.build();
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public Builder mergeAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource value) {
        if (awsElasticBlockStoreBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && awsElasticBlockStore_ != null
              && awsElasticBlockStore_
                  != io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
                      .getDefaultInstance()) {
            awsElasticBlockStore_ =
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.newBuilder(
                        awsElasticBlockStore_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            awsElasticBlockStore_ = value;
          }
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public Builder clearAwsElasticBlockStore() {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = null;
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder
          getAwsElasticBlockStoreBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getAwsElasticBlockStoreFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
          getAwsElasticBlockStoreOrBuilder() {
        if (awsElasticBlockStoreBuilder_ != null) {
          return awsElasticBlockStoreBuilder_.getMessageOrBuilder();
        } else {
          return awsElasticBlockStore_ == null
              ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
              : awsElasticBlockStore_;
        }
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>
          getAwsElasticBlockStoreFieldBuilder() {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStoreBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>(
                  getAwsElasticBlockStore(), getParentForChildren(), isClean());
          awsElasticBlockStore_ = null;
        }
        return awsElasticBlockStoreBuilder_;
      }

      private io.kubernetes.client.proto.V1.HostPathVolumeSource hostPath_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostPathVolumeSource,
              io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
              io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>
          hostPathBuilder_;
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public boolean hasHostPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath() {
        if (hostPathBuilder_ == null) {
          return hostPath_ == null
              ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
              : hostPath_;
        } else {
          return hostPathBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public Builder setHostPath(io.kubernetes.client.proto.V1.HostPathVolumeSource value) {
        if (hostPathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hostPath_ = value;
          onChanged();
        } else {
          hostPathBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public Builder setHostPath(
          io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder builderForValue) {
        if (hostPathBuilder_ == null) {
          hostPath_ = builderForValue.build();
          onChanged();
        } else {
          hostPathBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public Builder mergeHostPath(io.kubernetes.client.proto.V1.HostPathVolumeSource value) {
        if (hostPathBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && hostPath_ != null
              && hostPath_
                  != io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()) {
            hostPath_ =
                io.kubernetes.client.proto.V1.HostPathVolumeSource.newBuilder(hostPath_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            hostPath_ = value;
          }
          onChanged();
        } else {
          hostPathBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public Builder clearHostPath() {
        if (hostPathBuilder_ == null) {
          hostPath_ = null;
          onChanged();
        } else {
          hostPathBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder getHostPathBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getHostPathFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder() {
        if (hostPathBuilder_ != null) {
          return hostPathBuilder_.getMessageOrBuilder();
        } else {
          return hostPath_ == null
              ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
              : hostPath_;
        }
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a directory on the host.
       * Provisioned by a developer or tester.
       * This is useful for single-node development and testing only!
       * On-host storage is not supported in any way and WILL NOT WORK in a multi-node cluster.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostPathVolumeSource,
              io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
              io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>
          getHostPathFieldBuilder() {
        if (hostPathBuilder_ == null) {
          hostPathBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.HostPathVolumeSource,
                  io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>(
                  getHostPath(), getParentForChildren(), isClean());
          hostPath_ = null;
        }
        return hostPathBuilder_;
      }

      private io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource glusterfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource,
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder>
          glusterfsBuilder_;
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public boolean hasGlusterfs() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource getGlusterfs() {
        if (glusterfsBuilder_ == null) {
          return glusterfs_ == null
              ? io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance()
              : glusterfs_;
        } else {
          return glusterfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public Builder setGlusterfs(
          io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource value) {
        if (glusterfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          glusterfs_ = value;
          onChanged();
        } else {
          glusterfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public Builder setGlusterfs(
          io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder builderForValue) {
        if (glusterfsBuilder_ == null) {
          glusterfs_ = builderForValue.build();
          onChanged();
        } else {
          glusterfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public Builder mergeGlusterfs(
          io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource value) {
        if (glusterfsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && glusterfs_ != null
              && glusterfs_
                  != io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource
                      .getDefaultInstance()) {
            glusterfs_ =
                io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.newBuilder(glusterfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            glusterfs_ = value;
          }
          onChanged();
        } else {
          glusterfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public Builder clearGlusterfs() {
        if (glusterfsBuilder_ == null) {
          glusterfs_ = null;
          onChanged();
        } else {
          glusterfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder
          getGlusterfsBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getGlusterfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder
          getGlusterfsOrBuilder() {
        if (glusterfsBuilder_ != null) {
          return glusterfsBuilder_.getMessageOrBuilder();
        } else {
          return glusterfs_ == null
              ? io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.getDefaultInstance()
              : glusterfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs volume that is attached to a host and
       * exposed to the pod. Provisioned by an admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsPersistentVolumeSource glusterfs = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource,
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder>
          getGlusterfsFieldBuilder() {
        if (glusterfsBuilder_ == null) {
          glusterfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.GlusterfsPersistentVolumeSourceOrBuilder>(
                  getGlusterfs(), getParentForChildren(), isClean());
          glusterfs_ = null;
        }
        return glusterfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.NFSVolumeSource nfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NFSVolumeSource,
              io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>
          nfsBuilder_;
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public boolean hasNfs() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSource getNfs() {
        if (nfsBuilder_ == null) {
          return nfs_ == null
              ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
              : nfs_;
        } else {
          return nfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public Builder setNfs(io.kubernetes.client.proto.V1.NFSVolumeSource value) {
        if (nfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nfs_ = value;
          onChanged();
        } else {
          nfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public Builder setNfs(io.kubernetes.client.proto.V1.NFSVolumeSource.Builder builderForValue) {
        if (nfsBuilder_ == null) {
          nfs_ = builderForValue.build();
          onChanged();
        } else {
          nfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public Builder mergeNfs(io.kubernetes.client.proto.V1.NFSVolumeSource value) {
        if (nfsBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && nfs_ != null
              && nfs_ != io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()) {
            nfs_ =
                io.kubernetes.client.proto.V1.NFSVolumeSource.newBuilder(nfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nfs_ = value;
          }
          onChanged();
        } else {
          nfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public Builder clearNfs() {
        if (nfsBuilder_ == null) {
          nfs_ = null;
          onChanged();
        } else {
          nfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSource.Builder getNfsBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getNfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder() {
        if (nfsBuilder_ != null) {
          return nfsBuilder_.getMessageOrBuilder();
        } else {
          return nfs_ == null
              ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
              : nfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host. Provisioned by an admin.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NFSVolumeSource,
              io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>
          getNfsFieldBuilder() {
        if (nfsBuilder_ == null) {
          nfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NFSVolumeSource,
                  io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>(
                  getNfs(), getParentForChildren(), isClean());
          nfs_ = null;
        }
        return nfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.RBDPersistentVolumeSource rbd_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource,
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder>
          rbdBuilder_;
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public boolean hasRbd() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getRbd() {
        if (rbdBuilder_ == null) {
          return rbd_ == null
              ? io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance()
              : rbd_;
        } else {
          return rbdBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public Builder setRbd(io.kubernetes.client.proto.V1.RBDPersistentVolumeSource value) {
        if (rbdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rbd_ = value;
          onChanged();
        } else {
          rbdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public Builder setRbd(
          io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder builderForValue) {
        if (rbdBuilder_ == null) {
          rbd_ = builderForValue.build();
          onChanged();
        } else {
          rbdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public Builder mergeRbd(io.kubernetes.client.proto.V1.RBDPersistentVolumeSource value) {
        if (rbdBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && rbd_ != null
              && rbd_
                  != io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance()) {
            rbd_ =
                io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.newBuilder(rbd_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            rbd_ = value;
          }
          onChanged();
        } else {
          rbdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public Builder clearRbd() {
        if (rbdBuilder_ == null) {
          rbd_ = null;
          onChanged();
        } else {
          rbdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder getRbdBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getRbdFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder getRbdOrBuilder() {
        if (rbdBuilder_ != null) {
          return rbdBuilder_.getMessageOrBuilder();
        } else {
          return rbd_ == null
              ? io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance()
              : rbd_;
        }
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDPersistentVolumeSource rbd = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource,
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder>
          getRbdFieldBuilder() {
        if (rbdBuilder_ == null) {
          rbdBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.RBDPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder>(
                  getRbd(), getParentForChildren(), isClean());
          rbd_ = null;
        }
        return rbdBuilder_;
      }

      private io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource iscsi_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource,
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder>
          iscsiBuilder_;
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public boolean hasIscsi() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource getIscsi() {
        if (iscsiBuilder_ == null) {
          return iscsi_ == null
              ? io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance()
              : iscsi_;
        } else {
          return iscsiBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public Builder setIscsi(io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource value) {
        if (iscsiBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          iscsi_ = value;
          onChanged();
        } else {
          iscsiBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public Builder setIscsi(
          io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder builderForValue) {
        if (iscsiBuilder_ == null) {
          iscsi_ = builderForValue.build();
          onChanged();
        } else {
          iscsiBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public Builder mergeIscsi(io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource value) {
        if (iscsiBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && iscsi_ != null
              && iscsi_
                  != io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource
                      .getDefaultInstance()) {
            iscsi_ =
                io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.newBuilder(iscsi_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            iscsi_ = value;
          }
          onChanged();
        } else {
          iscsiBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public Builder clearIscsi() {
        if (iscsiBuilder_ == null) {
          iscsi_ = null;
          onChanged();
        } else {
          iscsiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder getIscsiBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getIscsiFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder
          getIscsiOrBuilder() {
        if (iscsiBuilder_ != null) {
          return iscsiBuilder_.getMessageOrBuilder();
        } else {
          return iscsi_ == null
              ? io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.getDefaultInstance()
              : iscsi_;
        }
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod. Provisioned by an admin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIPersistentVolumeSource iscsi = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource,
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder>
          getIscsiFieldBuilder() {
        if (iscsiBuilder_ == null) {
          iscsiBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ISCSIPersistentVolumeSourceOrBuilder>(
                  getIscsi(), getParentForChildren(), isClean());
          iscsi_ = null;
        }
        return iscsiBuilder_;
      }

      private io.kubernetes.client.proto.V1.CinderPersistentVolumeSource cinder_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder>
          cinderBuilder_;
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public boolean hasCinder() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource getCinder() {
        if (cinderBuilder_ == null) {
          return cinder_ == null
              ? io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance()
              : cinder_;
        } else {
          return cinderBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public Builder setCinder(io.kubernetes.client.proto.V1.CinderPersistentVolumeSource value) {
        if (cinderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cinder_ = value;
          onChanged();
        } else {
          cinderBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public Builder setCinder(
          io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder builderForValue) {
        if (cinderBuilder_ == null) {
          cinder_ = builderForValue.build();
          onChanged();
        } else {
          cinderBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public Builder mergeCinder(io.kubernetes.client.proto.V1.CinderPersistentVolumeSource value) {
        if (cinderBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && cinder_ != null
              && cinder_
                  != io.kubernetes.client.proto.V1.CinderPersistentVolumeSource
                      .getDefaultInstance()) {
            cinder_ =
                io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.newBuilder(cinder_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            cinder_ = value;
          }
          onChanged();
        } else {
          cinderBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public Builder clearCinder() {
        if (cinderBuilder_ == null) {
          cinder_ = null;
          onChanged();
        } else {
          cinderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder getCinderBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getCinderFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      public io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder
          getCinderOrBuilder() {
        if (cinderBuilder_ != null) {
          return cinderBuilder_.getMessageOrBuilder();
        } else {
          return cinder_ == null
              ? io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.getDefaultInstance()
              : cinder_;
        }
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderPersistentVolumeSource cinder = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder>
          getCinderFieldBuilder() {
        if (cinderBuilder_ == null) {
          cinderBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.CinderPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.CinderPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.CinderPersistentVolumeSourceOrBuilder>(
                  getCinder(), getParentForChildren(), isClean());
          cinder_ = null;
        }
        return cinderBuilder_;
      }

      private io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource cephfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder>
          cephfsBuilder_;
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public boolean hasCephfs() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource getCephfs() {
        if (cephfsBuilder_ == null) {
          return cephfs_ == null
              ? io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance()
              : cephfs_;
        } else {
          return cephfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public Builder setCephfs(io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource value) {
        if (cephfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cephfs_ = value;
          onChanged();
        } else {
          cephfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public Builder setCephfs(
          io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder builderForValue) {
        if (cephfsBuilder_ == null) {
          cephfs_ = builderForValue.build();
          onChanged();
        } else {
          cephfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public Builder mergeCephfs(io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource value) {
        if (cephfsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && cephfs_ != null
              && cephfs_
                  != io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource
                      .getDefaultInstance()) {
            cephfs_ =
                io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.newBuilder(cephfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            cephfs_ = value;
          }
          onChanged();
        } else {
          cephfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public Builder clearCephfs() {
        if (cephfsBuilder_ == null) {
          cephfs_ = null;
          onChanged();
        } else {
          cephfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder getCephfsBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getCephfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder
          getCephfsOrBuilder() {
        if (cephfsBuilder_ != null) {
          return cephfsBuilder_.getMessageOrBuilder();
        } else {
          return cephfs_ == null
              ? io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.getDefaultInstance()
              : cephfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSPersistentVolumeSource cephfs = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder>
          getCephfsFieldBuilder() {
        if (cephfsBuilder_ == null) {
          cephfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.CephFSPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.CephFSPersistentVolumeSourceOrBuilder>(
                  getCephfs(), getParentForChildren(), isClean());
          cephfs_ = null;
        }
        return cephfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.FCVolumeSource fc_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FCVolumeSource,
              io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>
          fcBuilder_;
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public boolean hasFc() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSource getFc() {
        if (fcBuilder_ == null) {
          return fc_ == null
              ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()
              : fc_;
        } else {
          return fcBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public Builder setFc(io.kubernetes.client.proto.V1.FCVolumeSource value) {
        if (fcBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fc_ = value;
          onChanged();
        } else {
          fcBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public Builder setFc(io.kubernetes.client.proto.V1.FCVolumeSource.Builder builderForValue) {
        if (fcBuilder_ == null) {
          fc_ = builderForValue.build();
          onChanged();
        } else {
          fcBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public Builder mergeFc(io.kubernetes.client.proto.V1.FCVolumeSource value) {
        if (fcBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && fc_ != null
              && fc_ != io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()) {
            fc_ =
                io.kubernetes.client.proto.V1.FCVolumeSource.newBuilder(fc_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            fc_ = value;
          }
          onChanged();
        } else {
          fcBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public Builder clearFc() {
        if (fcBuilder_ == null) {
          fc_ = null;
          onChanged();
        } else {
          fcBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSource.Builder getFcBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getFcFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder() {
        if (fcBuilder_ != null) {
          return fcBuilder_.getMessageOrBuilder();
        } else {
          return fc_ == null
              ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()
              : fc_;
        }
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 10;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FCVolumeSource,
              io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>
          getFcFieldBuilder() {
        if (fcBuilder_ == null) {
          fcBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FCVolumeSource,
                  io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>(
                  getFc(), getParentForChildren(), isClean());
          fc_ = null;
        }
        return fcBuilder_;
      }

      private io.kubernetes.client.proto.V1.FlockerVolumeSource flocker_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlockerVolumeSource,
              io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>
          flockerBuilder_;
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public boolean hasFlocker() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker() {
        if (flockerBuilder_ == null) {
          return flocker_ == null
              ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
              : flocker_;
        } else {
          return flockerBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public Builder setFlocker(io.kubernetes.client.proto.V1.FlockerVolumeSource value) {
        if (flockerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flocker_ = value;
          onChanged();
        } else {
          flockerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public Builder setFlocker(
          io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder builderForValue) {
        if (flockerBuilder_ == null) {
          flocker_ = builderForValue.build();
          onChanged();
        } else {
          flockerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public Builder mergeFlocker(io.kubernetes.client.proto.V1.FlockerVolumeSource value) {
        if (flockerBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)
              && flocker_ != null
              && flocker_
                  != io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()) {
            flocker_ =
                io.kubernetes.client.proto.V1.FlockerVolumeSource.newBuilder(flocker_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            flocker_ = value;
          }
          onChanged();
        } else {
          flockerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public Builder clearFlocker() {
        if (flockerBuilder_ == null) {
          flocker_ = null;
          onChanged();
        } else {
          flockerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder getFlockerBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getFlockerFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder() {
        if (flockerBuilder_ != null) {
          return flockerBuilder_.getMessageOrBuilder();
        } else {
          return flocker_ == null
              ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
              : flocker_;
        }
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine and exposed to the pod for its usage. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlockerVolumeSource,
              io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>
          getFlockerFieldBuilder() {
        if (flockerBuilder_ == null) {
          flockerBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FlockerVolumeSource,
                  io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>(
                  getFlocker(), getParentForChildren(), isClean());
          flocker_ = null;
        }
        return flockerBuilder_;
      }

      private io.kubernetes.client.proto.V1.FlexPersistentVolumeSource flexVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource,
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder>
          flexVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public boolean hasFlexVolume() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource getFlexVolume() {
        if (flexVolumeBuilder_ == null) {
          return flexVolume_ == null
              ? io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance()
              : flexVolume_;
        } else {
          return flexVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public Builder setFlexVolume(io.kubernetes.client.proto.V1.FlexPersistentVolumeSource value) {
        if (flexVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flexVolume_ = value;
          onChanged();
        } else {
          flexVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public Builder setFlexVolume(
          io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder builderForValue) {
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = builderForValue.build();
          onChanged();
        } else {
          flexVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public Builder mergeFlexVolume(
          io.kubernetes.client.proto.V1.FlexPersistentVolumeSource value) {
        if (flexVolumeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800)
              && flexVolume_ != null
              && flexVolume_
                  != io.kubernetes.client.proto.V1.FlexPersistentVolumeSource
                      .getDefaultInstance()) {
            flexVolume_ =
                io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.newBuilder(flexVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            flexVolume_ = value;
          }
          onChanged();
        } else {
          flexVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public Builder clearFlexVolume() {
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = null;
          onChanged();
        } else {
          flexVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder
          getFlexVolumeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getFlexVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder
          getFlexVolumeOrBuilder() {
        if (flexVolumeBuilder_ != null) {
          return flexVolumeBuilder_.getMessageOrBuilder();
        } else {
          return flexVolume_ == null
              ? io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.getDefaultInstance()
              : flexVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexPersistentVolumeSource flexVolume = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource,
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder>
          getFlexVolumeFieldBuilder() {
        if (flexVolumeBuilder_ == null) {
          flexVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FlexPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.FlexPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FlexPersistentVolumeSourceOrBuilder>(
                  getFlexVolume(), getParentForChildren(), isClean());
          flexVolume_ = null;
        }
        return flexVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource azureFile_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource,
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder>
          azureFileBuilder_;
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public boolean hasAzureFile() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource getAzureFile() {
        if (azureFileBuilder_ == null) {
          return azureFile_ == null
              ? io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance()
              : azureFile_;
        } else {
          return azureFileBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public Builder setAzureFile(
          io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource value) {
        if (azureFileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          azureFile_ = value;
          onChanged();
        } else {
          azureFileBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public Builder setAzureFile(
          io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder builderForValue) {
        if (azureFileBuilder_ == null) {
          azureFile_ = builderForValue.build();
          onChanged();
        } else {
          azureFileBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public Builder mergeAzureFile(
          io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource value) {
        if (azureFileBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && azureFile_ != null
              && azureFile_
                  != io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource
                      .getDefaultInstance()) {
            azureFile_ =
                io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.newBuilder(azureFile_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            azureFile_ = value;
          }
          onChanged();
        } else {
          azureFileBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public Builder clearAzureFile() {
        if (azureFileBuilder_ == null) {
          azureFile_ = null;
          onChanged();
        } else {
          azureFileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder
          getAzureFileBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getAzureFileFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder
          getAzureFileOrBuilder() {
        if (azureFileBuilder_ != null) {
          return azureFileBuilder_.getMessageOrBuilder();
        } else {
          return azureFile_ == null
              ? io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.getDefaultInstance()
              : azureFile_;
        }
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFilePersistentVolumeSource azureFile = 13;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource,
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder>
          getAzureFileFieldBuilder() {
        if (azureFileBuilder_ == null) {
          azureFileBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource,
                  io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AzureFilePersistentVolumeSourceOrBuilder>(
                  getAzureFile(), getParentForChildren(), isClean());
          azureFile_ = null;
        }
        return azureFileBuilder_;
      }

      private io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource vsphereVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>
          vsphereVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public boolean hasVsphereVolume() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume() {
        if (vsphereVolumeBuilder_ == null) {
          return vsphereVolume_ == null
              ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
              : vsphereVolume_;
        } else {
          return vsphereVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public Builder setVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource value) {
        if (vsphereVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vsphereVolume_ = value;
          onChanged();
        } else {
          vsphereVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public Builder setVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder builderForValue) {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = builderForValue.build();
          onChanged();
        } else {
          vsphereVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public Builder mergeVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource value) {
        if (vsphereVolumeBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)
              && vsphereVolume_ != null
              && vsphereVolume_
                  != io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
                      .getDefaultInstance()) {
            vsphereVolume_ =
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.newBuilder(
                        vsphereVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            vsphereVolume_ = value;
          }
          onChanged();
        } else {
          vsphereVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public Builder clearVsphereVolume() {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = null;
          onChanged();
        } else {
          vsphereVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder
          getVsphereVolumeBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getVsphereVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
          getVsphereVolumeOrBuilder() {
        if (vsphereVolumeBuilder_ != null) {
          return vsphereVolumeBuilder_.getMessageOrBuilder();
        } else {
          return vsphereVolume_ == null
              ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
              : vsphereVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 14;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>
          getVsphereVolumeFieldBuilder() {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>(
                  getVsphereVolume(), getParentForChildren(), isClean());
          vsphereVolume_ = null;
        }
        return vsphereVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.QuobyteVolumeSource quobyte_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.QuobyteVolumeSource,
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
              io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>
          quobyteBuilder_;
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public boolean hasQuobyte() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte() {
        if (quobyteBuilder_ == null) {
          return quobyte_ == null
              ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
              : quobyte_;
        } else {
          return quobyteBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public Builder setQuobyte(io.kubernetes.client.proto.V1.QuobyteVolumeSource value) {
        if (quobyteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          quobyte_ = value;
          onChanged();
        } else {
          quobyteBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public Builder setQuobyte(
          io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder builderForValue) {
        if (quobyteBuilder_ == null) {
          quobyte_ = builderForValue.build();
          onChanged();
        } else {
          quobyteBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public Builder mergeQuobyte(io.kubernetes.client.proto.V1.QuobyteVolumeSource value) {
        if (quobyteBuilder_ == null) {
          if (((bitField0_ & 0x00004000) == 0x00004000)
              && quobyte_ != null
              && quobyte_
                  != io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()) {
            quobyte_ =
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.newBuilder(quobyte_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            quobyte_ = value;
          }
          onChanged();
        } else {
          quobyteBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public Builder clearQuobyte() {
        if (quobyteBuilder_ == null) {
          quobyte_ = null;
          onChanged();
        } else {
          quobyteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder getQuobyteBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getQuobyteFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder() {
        if (quobyteBuilder_ != null) {
          return quobyteBuilder_.getMessageOrBuilder();
        } else {
          return quobyte_ == null
              ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
              : quobyte_;
        }
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.QuobyteVolumeSource,
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
              io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>
          getQuobyteFieldBuilder() {
        if (quobyteBuilder_ == null) {
          quobyteBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.QuobyteVolumeSource,
                  io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>(
                  getQuobyte(), getParentForChildren(), isClean());
          quobyte_ = null;
        }
        return quobyteBuilder_;
      }

      private io.kubernetes.client.proto.V1.AzureDiskVolumeSource azureDisk_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>
          azureDiskBuilder_;
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public boolean hasAzureDisk() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk() {
        if (azureDiskBuilder_ == null) {
          return azureDisk_ == null
              ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
              : azureDisk_;
        } else {
          return azureDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public Builder setAzureDisk(io.kubernetes.client.proto.V1.AzureDiskVolumeSource value) {
        if (azureDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          azureDisk_ = value;
          onChanged();
        } else {
          azureDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public Builder setAzureDisk(
          io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder builderForValue) {
        if (azureDiskBuilder_ == null) {
          azureDisk_ = builderForValue.build();
          onChanged();
        } else {
          azureDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public Builder mergeAzureDisk(io.kubernetes.client.proto.V1.AzureDiskVolumeSource value) {
        if (azureDiskBuilder_ == null) {
          if (((bitField0_ & 0x00008000) == 0x00008000)
              && azureDisk_ != null
              && azureDisk_
                  != io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()) {
            azureDisk_ =
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.newBuilder(azureDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            azureDisk_ = value;
          }
          onChanged();
        } else {
          azureDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public Builder clearAzureDisk() {
        if (azureDiskBuilder_ == null) {
          azureDisk_ = null;
          onChanged();
        } else {
          azureDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder getAzureDiskBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getAzureDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder() {
        if (azureDiskBuilder_ != null) {
          return azureDiskBuilder_.getMessageOrBuilder();
        } else {
          return azureDisk_ == null
              ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
              : azureDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>
          getAzureDiskFieldBuilder() {
        if (azureDiskBuilder_ == null) {
          azureDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>(
                  getAzureDisk(), getParentForChildren(), isClean());
          azureDisk_ = null;
        }
        return azureDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource photonPersistentDisk_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>
          photonPersistentDiskBuilder_;
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public boolean hasPhotonPersistentDisk() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
          getPhotonPersistentDisk() {
        if (photonPersistentDiskBuilder_ == null) {
          return photonPersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
              : photonPersistentDisk_;
        } else {
          return photonPersistentDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public Builder setPhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource value) {
        if (photonPersistentDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          photonPersistentDisk_ = value;
          onChanged();
        } else {
          photonPersistentDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public Builder setPhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder builderForValue) {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = builderForValue.build();
          onChanged();
        } else {
          photonPersistentDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public Builder mergePhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource value) {
        if (photonPersistentDiskBuilder_ == null) {
          if (((bitField0_ & 0x00010000) == 0x00010000)
              && photonPersistentDisk_ != null
              && photonPersistentDisk_
                  != io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
                      .getDefaultInstance()) {
            photonPersistentDisk_ =
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.newBuilder(
                        photonPersistentDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            photonPersistentDisk_ = value;
          }
          onChanged();
        } else {
          photonPersistentDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public Builder clearPhotonPersistentDisk() {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = null;
          onChanged();
        } else {
          photonPersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder
          getPhotonPersistentDiskBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getPhotonPersistentDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
          getPhotonPersistentDiskOrBuilder() {
        if (photonPersistentDiskBuilder_ != null) {
          return photonPersistentDiskBuilder_.getMessageOrBuilder();
        } else {
          return photonPersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
              : photonPersistentDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 17;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>
          getPhotonPersistentDiskFieldBuilder() {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>(
                  getPhotonPersistentDisk(), getParentForChildren(), isClean());
          photonPersistentDisk_ = null;
        }
        return photonPersistentDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.PortworxVolumeSource portworxVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PortworxVolumeSource,
              io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>
          portworxVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public boolean hasPortworxVolume() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume() {
        if (portworxVolumeBuilder_ == null) {
          return portworxVolume_ == null
              ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
              : portworxVolume_;
        } else {
          return portworxVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public Builder setPortworxVolume(io.kubernetes.client.proto.V1.PortworxVolumeSource value) {
        if (portworxVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          portworxVolume_ = value;
          onChanged();
        } else {
          portworxVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public Builder setPortworxVolume(
          io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder builderForValue) {
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = builderForValue.build();
          onChanged();
        } else {
          portworxVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public Builder mergePortworxVolume(io.kubernetes.client.proto.V1.PortworxVolumeSource value) {
        if (portworxVolumeBuilder_ == null) {
          if (((bitField0_ & 0x00020000) == 0x00020000)
              && portworxVolume_ != null
              && portworxVolume_
                  != io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()) {
            portworxVolume_ =
                io.kubernetes.client.proto.V1.PortworxVolumeSource.newBuilder(portworxVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            portworxVolume_ = value;
          }
          onChanged();
        } else {
          portworxVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public Builder clearPortworxVolume() {
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = null;
          onChanged();
        } else {
          portworxVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder getPortworxVolumeBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getPortworxVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder
          getPortworxVolumeOrBuilder() {
        if (portworxVolumeBuilder_ != null) {
          return portworxVolumeBuilder_.getMessageOrBuilder();
        } else {
          return portworxVolume_ == null
              ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
              : portworxVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PortworxVolumeSource,
              io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>
          getPortworxVolumeFieldBuilder() {
        if (portworxVolumeBuilder_ == null) {
          portworxVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PortworxVolumeSource,
                  io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>(
                  getPortworxVolume(), getParentForChildren(), isClean());
          portworxVolume_ = null;
        }
        return portworxVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource scaleIO_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource,
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder>
          scaleIOBuilder_;
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public boolean hasScaleIO() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource getScaleIO() {
        if (scaleIOBuilder_ == null) {
          return scaleIO_ == null
              ? io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance()
              : scaleIO_;
        } else {
          return scaleIOBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public Builder setScaleIO(io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource value) {
        if (scaleIOBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scaleIO_ = value;
          onChanged();
        } else {
          scaleIOBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public Builder setScaleIO(
          io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder builderForValue) {
        if (scaleIOBuilder_ == null) {
          scaleIO_ = builderForValue.build();
          onChanged();
        } else {
          scaleIOBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public Builder mergeScaleIO(
          io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource value) {
        if (scaleIOBuilder_ == null) {
          if (((bitField0_ & 0x00040000) == 0x00040000)
              && scaleIO_ != null
              && scaleIO_
                  != io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource
                      .getDefaultInstance()) {
            scaleIO_ =
                io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.newBuilder(scaleIO_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            scaleIO_ = value;
          }
          onChanged();
        } else {
          scaleIOBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public Builder clearScaleIO() {
        if (scaleIOBuilder_ == null) {
          scaleIO_ = null;
          onChanged();
        } else {
          scaleIOBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder
          getScaleIOBuilder() {
        bitField0_ |= 0x00040000;
        onChanged();
        return getScaleIOFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder
          getScaleIOOrBuilder() {
        if (scaleIOBuilder_ != null) {
          return scaleIOBuilder_.getMessageOrBuilder();
        } else {
          return scaleIO_ == null
              ? io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance()
              : scaleIO_;
        }
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOPersistentVolumeSource scaleIO = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource,
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder>
          getScaleIOFieldBuilder() {
        if (scaleIOBuilder_ == null) {
          scaleIOBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder>(
                  getScaleIO(), getParentForChildren(), isClean());
          scaleIO_ = null;
        }
        return scaleIOBuilder_;
      }

      private io.kubernetes.client.proto.V1.LocalVolumeSource local_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalVolumeSource,
              io.kubernetes.client.proto.V1.LocalVolumeSource.Builder,
              io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder>
          localBuilder_;
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public boolean hasLocal() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public io.kubernetes.client.proto.V1.LocalVolumeSource getLocal() {
        if (localBuilder_ == null) {
          return local_ == null
              ? io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance()
              : local_;
        } else {
          return localBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public Builder setLocal(io.kubernetes.client.proto.V1.LocalVolumeSource value) {
        if (localBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          local_ = value;
          onChanged();
        } else {
          localBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public Builder setLocal(
          io.kubernetes.client.proto.V1.LocalVolumeSource.Builder builderForValue) {
        if (localBuilder_ == null) {
          local_ = builderForValue.build();
          onChanged();
        } else {
          localBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public Builder mergeLocal(io.kubernetes.client.proto.V1.LocalVolumeSource value) {
        if (localBuilder_ == null) {
          if (((bitField0_ & 0x00080000) == 0x00080000)
              && local_ != null
              && local_ != io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance()) {
            local_ =
                io.kubernetes.client.proto.V1.LocalVolumeSource.newBuilder(local_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            local_ = value;
          }
          onChanged();
        } else {
          localBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public Builder clearLocal() {
        if (localBuilder_ == null) {
          local_ = null;
          onChanged();
        } else {
          localBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public io.kubernetes.client.proto.V1.LocalVolumeSource.Builder getLocalBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getLocalFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      public io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder getLocalOrBuilder() {
        if (localBuilder_ != null) {
          return localBuilder_.getMessageOrBuilder();
        } else {
          return local_ == null
              ? io.kubernetes.client.proto.V1.LocalVolumeSource.getDefaultInstance()
              : local_;
        }
      }
      /**
       *
       *
       * <pre>
       * Local represents directly-attached storage with node affinity
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalVolumeSource local = 20;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalVolumeSource,
              io.kubernetes.client.proto.V1.LocalVolumeSource.Builder,
              io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder>
          getLocalFieldBuilder() {
        if (localBuilder_ == null) {
          localBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalVolumeSource,
                  io.kubernetes.client.proto.V1.LocalVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.LocalVolumeSourceOrBuilder>(
                  getLocal(), getParentForChildren(), isClean());
          local_ = null;
        }
        return localBuilder_;
      }

      private io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource storageos_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource,
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder>
          storageosBuilder_;
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public boolean hasStorageos() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource getStorageos() {
        if (storageosBuilder_ == null) {
          return storageos_ == null
              ? io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance()
              : storageos_;
        } else {
          return storageosBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public Builder setStorageos(
          io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource value) {
        if (storageosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          storageos_ = value;
          onChanged();
        } else {
          storageosBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public Builder setStorageos(
          io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder builderForValue) {
        if (storageosBuilder_ == null) {
          storageos_ = builderForValue.build();
          onChanged();
        } else {
          storageosBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public Builder mergeStorageos(
          io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource value) {
        if (storageosBuilder_ == null) {
          if (((bitField0_ & 0x00100000) == 0x00100000)
              && storageos_ != null
              && storageos_
                  != io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource
                      .getDefaultInstance()) {
            storageos_ =
                io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.newBuilder(storageos_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            storageos_ = value;
          }
          onChanged();
        } else {
          storageosBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public Builder clearStorageos() {
        if (storageosBuilder_ == null) {
          storageos_ = null;
          onChanged();
        } else {
          storageosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder
          getStorageosBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getStorageosFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder
          getStorageosOrBuilder() {
        if (storageosBuilder_ != null) {
          return storageosBuilder_.getMessageOrBuilder();
        } else {
          return storageos_ == null
              ? io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance()
              : storageos_;
        }
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod
       * More info: https://releases.k8s.io/HEAD/examples/volumes/storageos/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSPersistentVolumeSource storageos = 21;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource,
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder>
          getStorageosFieldBuilder() {
        if (storageosBuilder_ == null) {
          storageosBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder>(
                  getStorageos(), getParentForChildren(), isClean());
          storageos_ = null;
        }
        return storageosBuilder_;
      }

      private io.kubernetes.client.proto.V1.CSIPersistentVolumeSource csi_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder>
          csiBuilder_;
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public boolean hasCsi() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource getCsi() {
        if (csiBuilder_ == null) {
          return csi_ == null
              ? io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance()
              : csi_;
        } else {
          return csiBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public Builder setCsi(io.kubernetes.client.proto.V1.CSIPersistentVolumeSource value) {
        if (csiBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          csi_ = value;
          onChanged();
        } else {
          csiBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public Builder setCsi(
          io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder builderForValue) {
        if (csiBuilder_ == null) {
          csi_ = builderForValue.build();
          onChanged();
        } else {
          csiBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public Builder mergeCsi(io.kubernetes.client.proto.V1.CSIPersistentVolumeSource value) {
        if (csiBuilder_ == null) {
          if (((bitField0_ & 0x00200000) == 0x00200000)
              && csi_ != null
              && csi_
                  != io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance()) {
            csi_ =
                io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.newBuilder(csi_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            csi_ = value;
          }
          onChanged();
        } else {
          csiBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public Builder clearCsi() {
        if (csiBuilder_ == null) {
          csi_ = null;
          onChanged();
        } else {
          csiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder getCsiBuilder() {
        bitField0_ |= 0x00200000;
        onChanged();
        return getCsiFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      public io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder getCsiOrBuilder() {
        if (csiBuilder_ != null) {
          return csiBuilder_.getMessageOrBuilder();
        } else {
          return csi_ == null
              ? io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.getDefaultInstance()
              : csi_;
        }
      }
      /**
       *
       *
       * <pre>
       * CSI represents storage that handled by an external CSI driver (Beta feature).
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CSIPersistentVolumeSource csi = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource,
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder>
          getCsiFieldBuilder() {
        if (csiBuilder_ == null) {
          csiBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.CSIPersistentVolumeSource,
                  io.kubernetes.client.proto.V1.CSIPersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.CSIPersistentVolumeSourceOrBuilder>(
                  getCsi(), getParentForChildren(), isClean());
          csi_ = null;
        }
        return csiBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeSource>() {
          @java.lang.Override
          public PersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    int getCapacityCount();
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    boolean containsCapacity(java.lang.String key);
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacity();
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getCapacityMap();
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    boolean hasPersistentVolumeSource();
    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeSource getPersistentVolumeSource();
    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder
        getPersistentVolumeSourceOrBuilder();

    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    java.util.List<java.lang.String> getAccessModesList();
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    int getAccessModesCount();
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    java.lang.String getAccessModes(int index);
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    com.google.protobuf.ByteString getAccessModesBytes(int index);

    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    boolean hasClaimRef();
    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getClaimRef();
    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getClaimRefOrBuilder();

    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    boolean hasPersistentVolumeReclaimPolicy();
    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    java.lang.String getPersistentVolumeReclaimPolicy();
    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    com.google.protobuf.ByteString getPersistentVolumeReclaimPolicyBytes();

    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    boolean hasStorageClassName();
    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    java.lang.String getStorageClassName();
    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    com.google.protobuf.ByteString getStorageClassNameBytes();

    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    java.util.List<java.lang.String> getMountOptionsList();
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    int getMountOptionsCount();
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    java.lang.String getMountOptions(int index);
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    com.google.protobuf.ByteString getMountOptionsBytes(int index);

    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    boolean hasVolumeMode();
    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    java.lang.String getVolumeMode();
    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    com.google.protobuf.ByteString getVolumeModeBytes();

    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    boolean hasNodeAffinity();
    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    io.kubernetes.client.proto.V1.VolumeNodeAffinity getNodeAffinity();
    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder getNodeAffinityOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeSpec is the specification of a persistent volume.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeSpec}
   */
  public static final class PersistentVolumeSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeSpec)
      PersistentVolumeSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeSpec.newBuilder() to construct.
    private PersistentVolumeSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeSpec() {
      accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      persistentVolumeReclaimPolicy_ = "";
      storageClassName_ = "";
      mountOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      volumeMode_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  capacity_ =
                      com.google.protobuf.MapField.newMapField(
                          CapacityDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    capacity__ =
                        input.readMessage(
                            CapacityDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                capacity_.getMutableMap().put(capacity__.getKey(), capacity__.getValue());
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = persistentVolumeSource_.toBuilder();
                }
                persistentVolumeSource_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(persistentVolumeSource_);
                  persistentVolumeSource_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  accessModes_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                accessModes_.add(bs);
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = claimRef_.toBuilder();
                }
                claimRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(claimRef_);
                  claimRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                persistentVolumeReclaimPolicy_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                storageClassName_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  mountOptions_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000040;
                }
                mountOptions_.add(bs);
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                volumeMode_ = bs;
                break;
              }
            case 74:
              {
                io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = nodeAffinity_.toBuilder();
                }
                nodeAffinity_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VolumeNodeAffinity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nodeAffinity_);
                  nodeAffinity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          accessModes_ = accessModes_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          mountOptions_ = mountOptions_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetCapacity();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeSpec.class,
              io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder.class);
    }

    private int bitField0_;
    public static final int CAPACITY_FIELD_NUMBER = 1;

    private static final class CapacityDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        capacity_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetCapacity() {
      if (capacity_ == null) {
        return com.google.protobuf.MapField.emptyMapField(CapacityDefaultEntryHolder.defaultEntry);
      }
      return capacity_;
    }

    public int getCapacityCount() {
      return internalGetCapacity().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public boolean containsCapacity(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetCapacity().getMap().containsKey(key);
    }
    /** Use {@link #getCapacityMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacity() {
      return getCapacityMap();
    }
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getCapacityMap() {
      return internalGetCapacity().getMap();
    }
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * A description of the persistent volume's resources and capacity.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetCapacity().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int PERSISTENTVOLUMESOURCE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PersistentVolumeSource persistentVolumeSource_;
    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    public boolean hasPersistentVolumeSource() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeSource getPersistentVolumeSource() {
      return persistentVolumeSource_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance()
          : persistentVolumeSource_;
    }
    /**
     *
     *
     * <pre>
     * The actual volume backing the persistent volume.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder
        getPersistentVolumeSourceOrBuilder() {
      return persistentVolumeSource_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance()
          : persistentVolumeSource_;
    }

    public static final int ACCESSMODES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList accessModes_;
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getAccessModesList() {
      return accessModes_;
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    public int getAccessModesCount() {
      return accessModes_.size();
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    public java.lang.String getAccessModes(int index) {
      return accessModes_.get(index);
    }
    /**
     *
     *
     * <pre>
     * AccessModes contains all ways the volume can be mounted.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
     * +optional
     * </pre>
     *
     * <code>repeated string accessModes = 3;</code>
     */
    public com.google.protobuf.ByteString getAccessModesBytes(int index) {
      return accessModes_.getByteString(index);
    }

    public static final int CLAIMREF_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.ObjectReference claimRef_;
    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    public boolean hasClaimRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getClaimRef() {
      return claimRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : claimRef_;
    }
    /**
     *
     *
     * <pre>
     * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
     * Expected to be non-nil when bound.
     * claim.VolumeName is the authoritative bind between PV and PVC.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getClaimRefOrBuilder() {
      return claimRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : claimRef_;
    }

    public static final int PERSISTENTVOLUMERECLAIMPOLICY_FIELD_NUMBER = 5;
    private volatile java.lang.Object persistentVolumeReclaimPolicy_;
    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    public boolean hasPersistentVolumeReclaimPolicy() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    public java.lang.String getPersistentVolumeReclaimPolicy() {
      java.lang.Object ref = persistentVolumeReclaimPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          persistentVolumeReclaimPolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * What happens to a persistent volume when released from its claim.
     * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
     * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
     * Recycle must be supported by the volume plugin underlying this PersistentVolume.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
     * +optional
     * </pre>
     *
     * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
     */
    public com.google.protobuf.ByteString getPersistentVolumeReclaimPolicyBytes() {
      java.lang.Object ref = persistentVolumeReclaimPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        persistentVolumeReclaimPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGECLASSNAME_FIELD_NUMBER = 6;
    private volatile java.lang.Object storageClassName_;
    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    public boolean hasStorageClassName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    public java.lang.String getStorageClassName() {
      java.lang.Object ref = storageClassName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storageClassName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of StorageClass to which this persistent volume belongs. Empty value
     * means that this volume does not belong to any StorageClass.
     * +optional
     * </pre>
     *
     * <code>optional string storageClassName = 6;</code>
     */
    public com.google.protobuf.ByteString getStorageClassNameBytes() {
      java.lang.Object ref = storageClassName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storageClassName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MOUNTOPTIONS_FIELD_NUMBER = 7;
    private com.google.protobuf.LazyStringList mountOptions_;
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    public com.google.protobuf.ProtocolStringList getMountOptionsList() {
      return mountOptions_;
    }
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    public int getMountOptionsCount() {
      return mountOptions_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    public java.lang.String getMountOptions(int index) {
      return mountOptions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
     * simply fail if one is invalid.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
     * +optional
     * </pre>
     *
     * <code>repeated string mountOptions = 7;</code>
     */
    public com.google.protobuf.ByteString getMountOptionsBytes(int index) {
      return mountOptions_.getByteString(index);
    }

    public static final int VOLUMEMODE_FIELD_NUMBER = 8;
    private volatile java.lang.Object volumeMode_;
    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    public boolean hasVolumeMode() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    public java.lang.String getVolumeMode() {
      java.lang.Object ref = volumeMode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeMode_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * volumeMode defines if a volume is intended to be used with a formatted filesystem
     * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
     * This is a beta feature.
     * +optional
     * </pre>
     *
     * <code>optional string volumeMode = 8;</code>
     */
    public com.google.protobuf.ByteString getVolumeModeBytes() {
      java.lang.Object ref = volumeMode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeMode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NODEAFFINITY_FIELD_NUMBER = 9;
    private io.kubernetes.client.proto.V1.VolumeNodeAffinity nodeAffinity_;
    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    public boolean hasNodeAffinity() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeNodeAffinity getNodeAffinity() {
      return nodeAffinity_ == null
          ? io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance()
          : nodeAffinity_;
    }
    /**
     *
     *
     * <pre>
     * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * This field influences the scheduling of pods that use this volume.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder getNodeAffinityOrBuilder() {
      return nodeAffinity_ == null
          ? io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance()
          : nodeAffinity_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetCapacity(), CapacityDefaultEntryHolder.defaultEntry, 1);
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(2, getPersistentVolumeSource());
      }
      for (int i = 0; i < accessModes_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, accessModes_.getRaw(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(4, getClaimRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(
            output, 5, persistentVolumeReclaimPolicy_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, storageClassName_);
      }
      for (int i = 0; i < mountOptions_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, mountOptions_.getRaw(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, volumeMode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(9, getNodeAffinity());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetCapacity().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            capacity__ =
                CapacityDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, capacity__);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                2, getPersistentVolumeSource());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < accessModes_.size(); i++) {
          dataSize += computeStringSizeNoTag(accessModes_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getAccessModesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getClaimRef());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size +=
            com.google.protobuf.GeneratedMessageV3.computeStringSize(
                5, persistentVolumeReclaimPolicy_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, storageClassName_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < mountOptions_.size(); i++) {
          dataSize += computeStringSizeNoTag(mountOptions_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMountOptionsList().size();
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, volumeMode_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getNodeAffinity());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeSpec other =
          (io.kubernetes.client.proto.V1.PersistentVolumeSpec) obj;

      boolean result = true;
      result = result && internalGetCapacity().equals(other.internalGetCapacity());
      result = result && (hasPersistentVolumeSource() == other.hasPersistentVolumeSource());
      if (hasPersistentVolumeSource()) {
        result = result && getPersistentVolumeSource().equals(other.getPersistentVolumeSource());
      }
      result = result && getAccessModesList().equals(other.getAccessModesList());
      result = result && (hasClaimRef() == other.hasClaimRef());
      if (hasClaimRef()) {
        result = result && getClaimRef().equals(other.getClaimRef());
      }
      result =
          result
              && (hasPersistentVolumeReclaimPolicy() == other.hasPersistentVolumeReclaimPolicy());
      if (hasPersistentVolumeReclaimPolicy()) {
        result =
            result
                && getPersistentVolumeReclaimPolicy()
                    .equals(other.getPersistentVolumeReclaimPolicy());
      }
      result = result && (hasStorageClassName() == other.hasStorageClassName());
      if (hasStorageClassName()) {
        result = result && getStorageClassName().equals(other.getStorageClassName());
      }
      result = result && getMountOptionsList().equals(other.getMountOptionsList());
      result = result && (hasVolumeMode() == other.hasVolumeMode());
      if (hasVolumeMode()) {
        result = result && getVolumeMode().equals(other.getVolumeMode());
      }
      result = result && (hasNodeAffinity() == other.hasNodeAffinity());
      if (hasNodeAffinity()) {
        result = result && getNodeAffinity().equals(other.getNodeAffinity());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetCapacity().getMap().isEmpty()) {
        hash = (37 * hash) + CAPACITY_FIELD_NUMBER;
        hash = (53 * hash) + internalGetCapacity().hashCode();
      }
      if (hasPersistentVolumeSource()) {
        hash = (37 * hash) + PERSISTENTVOLUMESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getPersistentVolumeSource().hashCode();
      }
      if (getAccessModesCount() > 0) {
        hash = (37 * hash) + ACCESSMODES_FIELD_NUMBER;
        hash = (53 * hash) + getAccessModesList().hashCode();
      }
      if (hasClaimRef()) {
        hash = (37 * hash) + CLAIMREF_FIELD_NUMBER;
        hash = (53 * hash) + getClaimRef().hashCode();
      }
      if (hasPersistentVolumeReclaimPolicy()) {
        hash = (37 * hash) + PERSISTENTVOLUMERECLAIMPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getPersistentVolumeReclaimPolicy().hashCode();
      }
      if (hasStorageClassName()) {
        hash = (37 * hash) + STORAGECLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getStorageClassName().hashCode();
      }
      if (getMountOptionsCount() > 0) {
        hash = (37 * hash) + MOUNTOPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMountOptionsList().hashCode();
      }
      if (hasVolumeMode()) {
        hash = (37 * hash) + VOLUMEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeMode().hashCode();
      }
      if (hasNodeAffinity()) {
        hash = (37 * hash) + NODEAFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getNodeAffinity().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PersistentVolumeSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeSpec is the specification of a persistent volume.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeSpec)
        io.kubernetes.client.proto.V1.PersistentVolumeSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableCapacity();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeSpec.class,
                io.kubernetes.client.proto.V1.PersistentVolumeSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPersistentVolumeSourceFieldBuilder();
          getClaimRefFieldBuilder();
          getNodeAffinityFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableCapacity().clear();
        if (persistentVolumeSourceBuilder_ == null) {
          persistentVolumeSource_ = null;
        } else {
          persistentVolumeSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (claimRefBuilder_ == null) {
          claimRef_ = null;
        } else {
          claimRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        persistentVolumeReclaimPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        storageClassName_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        mountOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        volumeMode_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = null;
        } else {
          nodeAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSpec build() {
        io.kubernetes.client.proto.V1.PersistentVolumeSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeSpec buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeSpec result =
            new io.kubernetes.client.proto.V1.PersistentVolumeSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.capacity_ = internalGetCapacity();
        result.capacity_.makeImmutable();
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        if (persistentVolumeSourceBuilder_ == null) {
          result.persistentVolumeSource_ = persistentVolumeSource_;
        } else {
          result.persistentVolumeSource_ = persistentVolumeSourceBuilder_.build();
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          accessModes_ = accessModes_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.accessModes_ = accessModes_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        if (claimRefBuilder_ == null) {
          result.claimRef_ = claimRef_;
        } else {
          result.claimRef_ = claimRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000004;
        }
        result.persistentVolumeReclaimPolicy_ = persistentVolumeReclaimPolicy_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000008;
        }
        result.storageClassName_ = storageClassName_;
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          mountOptions_ = mountOptions_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000040);
        }
        result.mountOptions_ = mountOptions_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000010;
        }
        result.volumeMode_ = volumeMode_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000020;
        }
        if (nodeAffinityBuilder_ == null) {
          result.nodeAffinity_ = nodeAffinity_;
        } else {
          result.nodeAffinity_ = nodeAffinityBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeSpec other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeSpec.getDefaultInstance())
          return this;
        internalGetMutableCapacity().mergeFrom(other.internalGetCapacity());
        if (other.hasPersistentVolumeSource()) {
          mergePersistentVolumeSource(other.getPersistentVolumeSource());
        }
        if (!other.accessModes_.isEmpty()) {
          if (accessModes_.isEmpty()) {
            accessModes_ = other.accessModes_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureAccessModesIsMutable();
            accessModes_.addAll(other.accessModes_);
          }
          onChanged();
        }
        if (other.hasClaimRef()) {
          mergeClaimRef(other.getClaimRef());
        }
        if (other.hasPersistentVolumeReclaimPolicy()) {
          bitField0_ |= 0x00000010;
          persistentVolumeReclaimPolicy_ = other.persistentVolumeReclaimPolicy_;
          onChanged();
        }
        if (other.hasStorageClassName()) {
          bitField0_ |= 0x00000020;
          storageClassName_ = other.storageClassName_;
          onChanged();
        }
        if (!other.mountOptions_.isEmpty()) {
          if (mountOptions_.isEmpty()) {
            mountOptions_ = other.mountOptions_;
            bitField0_ = (bitField0_ & ~0x00000040);
          } else {
            ensureMountOptionsIsMutable();
            mountOptions_.addAll(other.mountOptions_);
          }
          onChanged();
        }
        if (other.hasVolumeMode()) {
          bitField0_ |= 0x00000080;
          volumeMode_ = other.volumeMode_;
          onChanged();
        }
        if (other.hasNodeAffinity()) {
          mergeNodeAffinity(other.getNodeAffinity());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          capacity_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetCapacity() {
        if (capacity_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              CapacityDefaultEntryHolder.defaultEntry);
        }
        return capacity_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableCapacity() {
        onChanged();
        ;
        if (capacity_ == null) {
          capacity_ =
              com.google.protobuf.MapField.newMapField(CapacityDefaultEntryHolder.defaultEntry);
        }
        if (!capacity_.isMutable()) {
          capacity_ = capacity_.copy();
        }
        return capacity_;
      }

      public int getCapacityCount() {
        return internalGetCapacity().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public boolean containsCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetCapacity().getMap().containsKey(key);
      }
      /** Use {@link #getCapacityMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacity() {
        return getCapacityMap();
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getCapacityMap() {
        return internalGetCapacity().getMap();
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getCapacityOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetCapacity().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearCapacity() {
        internalGetMutableCapacity().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder removeCapacity(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableCapacity() {
        return internalGetMutableCapacity().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putCapacity(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableCapacity().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * A description of the persistent volume's resources and capacity.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#capacity
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; capacity = 1;
       * </code>
       */
      public Builder putAllCapacity(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableCapacity().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeSource persistentVolumeSource_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeSource,
              io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder>
          persistentVolumeSourceBuilder_;
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public boolean hasPersistentVolumeSource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSource getPersistentVolumeSource() {
        if (persistentVolumeSourceBuilder_ == null) {
          return persistentVolumeSource_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance()
              : persistentVolumeSource_;
        } else {
          return persistentVolumeSourceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public Builder setPersistentVolumeSource(
          io.kubernetes.client.proto.V1.PersistentVolumeSource value) {
        if (persistentVolumeSourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          persistentVolumeSource_ = value;
          onChanged();
        } else {
          persistentVolumeSourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public Builder setPersistentVolumeSource(
          io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder builderForValue) {
        if (persistentVolumeSourceBuilder_ == null) {
          persistentVolumeSource_ = builderForValue.build();
          onChanged();
        } else {
          persistentVolumeSourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public Builder mergePersistentVolumeSource(
          io.kubernetes.client.proto.V1.PersistentVolumeSource value) {
        if (persistentVolumeSourceBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && persistentVolumeSource_ != null
              && persistentVolumeSource_
                  != io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance()) {
            persistentVolumeSource_ =
                io.kubernetes.client.proto.V1.PersistentVolumeSource.newBuilder(
                        persistentVolumeSource_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            persistentVolumeSource_ = value;
          }
          onChanged();
        } else {
          persistentVolumeSourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public Builder clearPersistentVolumeSource() {
        if (persistentVolumeSourceBuilder_ == null) {
          persistentVolumeSource_ = null;
          onChanged();
        } else {
          persistentVolumeSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder
          getPersistentVolumeSourceBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPersistentVolumeSourceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder
          getPersistentVolumeSourceOrBuilder() {
        if (persistentVolumeSourceBuilder_ != null) {
          return persistentVolumeSourceBuilder_.getMessageOrBuilder();
        } else {
          return persistentVolumeSource_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeSource.getDefaultInstance()
              : persistentVolumeSource_;
        }
      }
      /**
       *
       *
       * <pre>
       * The actual volume backing the persistent volume.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PersistentVolumeSource persistentVolumeSource = 2;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeSource,
              io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder>
          getPersistentVolumeSourceFieldBuilder() {
        if (persistentVolumeSourceBuilder_ == null) {
          persistentVolumeSourceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeSource,
                  io.kubernetes.client.proto.V1.PersistentVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeSourceOrBuilder>(
                  getPersistentVolumeSource(), getParentForChildren(), isClean());
          persistentVolumeSource_ = null;
        }
        return persistentVolumeSourceBuilder_;
      }

      private com.google.protobuf.LazyStringList accessModes_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureAccessModesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          accessModes_ = new com.google.protobuf.LazyStringArrayList(accessModes_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getAccessModesList() {
        return accessModes_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public int getAccessModesCount() {
        return accessModes_.size();
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public java.lang.String getAccessModes(int index) {
        return accessModes_.get(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public com.google.protobuf.ByteString getAccessModesBytes(int index) {
        return accessModes_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public Builder setAccessModes(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public Builder addAccessModes(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public Builder addAllAccessModes(java.lang.Iterable<java.lang.String> values) {
        ensureAccessModesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, accessModes_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public Builder clearAccessModes() {
        accessModes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AccessModes contains all ways the volume can be mounted.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes
       * +optional
       * </pre>
       *
       * <code>repeated string accessModes = 3;</code>
       */
      public Builder addAccessModesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureAccessModesIsMutable();
        accessModes_.add(value);
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ObjectReference claimRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          claimRefBuilder_;
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public boolean hasClaimRef() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getClaimRef() {
        if (claimRefBuilder_ == null) {
          return claimRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : claimRef_;
        } else {
          return claimRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public Builder setClaimRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (claimRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          claimRef_ = value;
          onChanged();
        } else {
          claimRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public Builder setClaimRef(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (claimRefBuilder_ == null) {
          claimRef_ = builderForValue.build();
          onChanged();
        } else {
          claimRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public Builder mergeClaimRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (claimRefBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && claimRef_ != null
              && claimRef_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            claimRef_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(claimRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            claimRef_ = value;
          }
          onChanged();
        } else {
          claimRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public Builder clearClaimRef() {
        if (claimRefBuilder_ == null) {
          claimRef_ = null;
          onChanged();
        } else {
          claimRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getClaimRefBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getClaimRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getClaimRefOrBuilder() {
        if (claimRefBuilder_ != null) {
          return claimRefBuilder_.getMessageOrBuilder();
        } else {
          return claimRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : claimRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * ClaimRef is part of a bi-directional binding between PersistentVolume and PersistentVolumeClaim.
       * Expected to be non-nil when bound.
       * claim.VolumeName is the authoritative bind between PV and PVC.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#binding
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference claimRef = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getClaimRefFieldBuilder() {
        if (claimRefBuilder_ == null) {
          claimRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getClaimRef(), getParentForChildren(), isClean());
          claimRef_ = null;
        }
        return claimRefBuilder_;
      }

      private java.lang.Object persistentVolumeReclaimPolicy_ = "";
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public boolean hasPersistentVolumeReclaimPolicy() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public java.lang.String getPersistentVolumeReclaimPolicy() {
        java.lang.Object ref = persistentVolumeReclaimPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            persistentVolumeReclaimPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public com.google.protobuf.ByteString getPersistentVolumeReclaimPolicyBytes() {
        java.lang.Object ref = persistentVolumeReclaimPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          persistentVolumeReclaimPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public Builder setPersistentVolumeReclaimPolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        persistentVolumeReclaimPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public Builder clearPersistentVolumeReclaimPolicy() {
        bitField0_ = (bitField0_ & ~0x00000010);
        persistentVolumeReclaimPolicy_ = getDefaultInstance().getPersistentVolumeReclaimPolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * What happens to a persistent volume when released from its claim.
       * Valid options are Retain (default for manually created PersistentVolumes), Delete (default
       * for dynamically provisioned PersistentVolumes), and Recycle (deprecated).
       * Recycle must be supported by the volume plugin underlying this PersistentVolume.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming
       * +optional
       * </pre>
       *
       * <code>optional string persistentVolumeReclaimPolicy = 5;</code>
       */
      public Builder setPersistentVolumeReclaimPolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        persistentVolumeReclaimPolicy_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storageClassName_ = "";
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public boolean hasStorageClassName() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public java.lang.String getStorageClassName() {
        java.lang.Object ref = storageClassName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storageClassName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public com.google.protobuf.ByteString getStorageClassNameBytes() {
        java.lang.Object ref = storageClassName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storageClassName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public Builder setStorageClassName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storageClassName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public Builder clearStorageClassName() {
        bitField0_ = (bitField0_ & ~0x00000020);
        storageClassName_ = getDefaultInstance().getStorageClassName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of StorageClass to which this persistent volume belongs. Empty value
       * means that this volume does not belong to any StorageClass.
       * +optional
       * </pre>
       *
       * <code>optional string storageClassName = 6;</code>
       */
      public Builder setStorageClassNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storageClassName_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList mountOptions_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureMountOptionsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          mountOptions_ = new com.google.protobuf.LazyStringArrayList(mountOptions_);
          bitField0_ |= 0x00000040;
        }
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public com.google.protobuf.ProtocolStringList getMountOptionsList() {
        return mountOptions_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public int getMountOptionsCount() {
        return mountOptions_.size();
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public java.lang.String getMountOptions(int index) {
        return mountOptions_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public com.google.protobuf.ByteString getMountOptionsBytes(int index) {
        return mountOptions_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public Builder setMountOptions(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMountOptionsIsMutable();
        mountOptions_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public Builder addMountOptions(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMountOptionsIsMutable();
        mountOptions_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public Builder addAllMountOptions(java.lang.Iterable<java.lang.String> values) {
        ensureMountOptionsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, mountOptions_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public Builder clearMountOptions() {
        mountOptions_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000040);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of mount options, e.g. ["ro", "soft"]. Not validated - mount will
       * simply fail if one is invalid.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#mount-options
       * +optional
       * </pre>
       *
       * <code>repeated string mountOptions = 7;</code>
       */
      public Builder addMountOptionsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMountOptionsIsMutable();
        mountOptions_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object volumeMode_ = "";
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public boolean hasVolumeMode() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public java.lang.String getVolumeMode() {
        java.lang.Object ref = volumeMode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeMode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public com.google.protobuf.ByteString getVolumeModeBytes() {
        java.lang.Object ref = volumeMode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public Builder setVolumeMode(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public Builder clearVolumeMode() {
        bitField0_ = (bitField0_ & ~0x00000080);
        volumeMode_ = getDefaultInstance().getVolumeMode();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * volumeMode defines if a volume is intended to be used with a formatted filesystem
       * or to remain in raw block state. Value of Filesystem is implied when not included in spec.
       * This is a beta feature.
       * +optional
       * </pre>
       *
       * <code>optional string volumeMode = 8;</code>
       */
      public Builder setVolumeModeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeMode_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.VolumeNodeAffinity nodeAffinity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeNodeAffinity,
              io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder,
              io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder>
          nodeAffinityBuilder_;
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public boolean hasNodeAffinity() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeNodeAffinity getNodeAffinity() {
        if (nodeAffinityBuilder_ == null) {
          return nodeAffinity_ == null
              ? io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance()
              : nodeAffinity_;
        } else {
          return nodeAffinityBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public Builder setNodeAffinity(io.kubernetes.client.proto.V1.VolumeNodeAffinity value) {
        if (nodeAffinityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nodeAffinity_ = value;
          onChanged();
        } else {
          nodeAffinityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public Builder setNodeAffinity(
          io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder builderForValue) {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = builderForValue.build();
          onChanged();
        } else {
          nodeAffinityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public Builder mergeNodeAffinity(io.kubernetes.client.proto.V1.VolumeNodeAffinity value) {
        if (nodeAffinityBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && nodeAffinity_ != null
              && nodeAffinity_
                  != io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance()) {
            nodeAffinity_ =
                io.kubernetes.client.proto.V1.VolumeNodeAffinity.newBuilder(nodeAffinity_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nodeAffinity_ = value;
          }
          onChanged();
        } else {
          nodeAffinityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public Builder clearNodeAffinity() {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinity_ = null;
          onChanged();
        } else {
          nodeAffinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder getNodeAffinityBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getNodeAffinityFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder getNodeAffinityOrBuilder() {
        if (nodeAffinityBuilder_ != null) {
          return nodeAffinityBuilder_.getMessageOrBuilder();
        } else {
          return nodeAffinity_ == null
              ? io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance()
              : nodeAffinity_;
        }
      }
      /**
       *
       *
       * <pre>
       * NodeAffinity defines constraints that limit what nodes this volume can be accessed from.
       * This field influences the scheduling of pods that use this volume.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeNodeAffinity nodeAffinity = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeNodeAffinity,
              io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder,
              io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder>
          getNodeAffinityFieldBuilder() {
        if (nodeAffinityBuilder_ == null) {
          nodeAffinityBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VolumeNodeAffinity,
                  io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder,
                  io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder>(
                  getNodeAffinity(), getParentForChildren(), isClean());
          nodeAffinity_ = null;
        }
        return nodeAffinityBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeSpec)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeSpec();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeSpec> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeSpec>() {
          @java.lang.Override
          public PersistentVolumeSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PersistentVolumeStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PersistentVolumeStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    boolean hasPhase();
    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    java.lang.String getPhase();
    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    com.google.protobuf.ByteString getPhaseBytes();

    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();

    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();
  }
  /**
   *
   *
   * <pre>
   * PersistentVolumeStatus is the current status of a persistent volume.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeStatus}
   */
  public static final class PersistentVolumeStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PersistentVolumeStatus)
      PersistentVolumeStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PersistentVolumeStatus.newBuilder() to construct.
    private PersistentVolumeStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PersistentVolumeStatus() {
      phase_ = "";
      message_ = "";
      reason_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PersistentVolumeStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                phase_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                message_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                reason_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PersistentVolumeStatus.class,
              io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder.class);
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private volatile java.lang.Object phase_;
    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public java.lang.String getPhase() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          phase_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Phase indicates if a volume is available, bound to a claim, or released by a claim.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public com.google.protobuf.ByteString getPhaseBytes() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        phase_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * A human-readable message indicating details about why the volume is in this state.
     * +optional
     * </pre>
     *
     * <code>optional string message = 2;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REASON_FIELD_NUMBER = 3;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Reason is a brief CamelCase string that describes any failure and is meant
     * for machine parsing and tidy display in the CLI.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phase_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reason_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, phase_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reason_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PersistentVolumeStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PersistentVolumeStatus other =
          (io.kubernetes.client.proto.V1.PersistentVolumeStatus) obj;

      boolean result = true;
      result = result && (hasPhase() == other.hasPhase());
      if (hasPhase()) {
        result = result && getPhase().equals(other.getPhase());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPhase()) {
        hash = (37 * hash) + PHASE_FIELD_NUMBER;
        hash = (53 * hash) + getPhase().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PersistentVolumeStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeStatus is the current status of a persistent volume.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PersistentVolumeStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PersistentVolumeStatus)
        io.kubernetes.client.proto.V1.PersistentVolumeStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PersistentVolumeStatus.class,
                io.kubernetes.client.proto.V1.PersistentVolumeStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PersistentVolumeStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeStatus build() {
        io.kubernetes.client.proto.V1.PersistentVolumeStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PersistentVolumeStatus buildPartial() {
        io.kubernetes.client.proto.V1.PersistentVolumeStatus result =
            new io.kubernetes.client.proto.V1.PersistentVolumeStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reason_ = reason_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PersistentVolumeStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.PersistentVolumeStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PersistentVolumeStatus other) {
        if (other == io.kubernetes.client.proto.V1.PersistentVolumeStatus.getDefaultInstance())
          return this;
        if (other.hasPhase()) {
          bitField0_ |= 0x00000001;
          phase_ = other.phase_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000002;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000004;
          reason_ = other.reason_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PersistentVolumeStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PersistentVolumeStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object phase_ = "";
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public java.lang.String getPhase() {
        java.lang.Object ref = phase_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phase_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public com.google.protobuf.ByteString getPhaseBytes() {
        java.lang.Object ref = phase_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          phase_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhase(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = getDefaultInstance().getPhase();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Phase indicates if a volume is available, bound to a claim, or released by a claim.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhaseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human-readable message indicating details about why the volume is in this state.
       * +optional
       * </pre>
       *
       * <code>optional string message = 2;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reason is a brief CamelCase string that describes any failure and is meant
       * for machine parsing and tidy display in the CLI.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PersistentVolumeStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PersistentVolumeStatus)
    private static final io.kubernetes.client.proto.V1.PersistentVolumeStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PersistentVolumeStatus();
    }

    public static io.kubernetes.client.proto.V1.PersistentVolumeStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PersistentVolumeStatus> PARSER =
        new com.google.protobuf.AbstractParser<PersistentVolumeStatus>() {
          @java.lang.Override
          public PersistentVolumeStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PersistentVolumeStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PersistentVolumeStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PersistentVolumeStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PersistentVolumeStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PhotonPersistentDiskVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    boolean hasPdID();
    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    java.lang.String getPdID();
    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    com.google.protobuf.ByteString getPdIDBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a Photon Controller persistent disk resource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource}
   */
  public static final class PhotonPersistentDiskVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource)
      PhotonPersistentDiskVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PhotonPersistentDiskVolumeSource.newBuilder() to construct.
    private PhotonPersistentDiskVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PhotonPersistentDiskVolumeSource() {
      pdID_ = "";
      fsType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PhotonPersistentDiskVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                pdID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.class,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int PDID_FIELD_NUMBER = 1;
    private volatile java.lang.Object pdID_;
    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    public boolean hasPdID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    public java.lang.String getPdID() {
      java.lang.Object ref = pdID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pdID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ID that identifies Photon Controller persistent disk
     * </pre>
     *
     * <code>optional string pdID = 1;</code>
     */
    public com.google.protobuf.ByteString getPdIDBytes() {
      java.lang.Object ref = pdID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pdID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, pdID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, pdID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource other =
          (io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource) obj;

      boolean result = true;
      result = result && (hasPdID() == other.hasPdID());
      if (hasPdID()) {
        result = result && getPdID().equals(other.getPdID());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPdID()) {
        hash = (37 * hash) + PDID_FIELD_NUMBER;
        hash = (53 * hash) + getPdID().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Photon Controller persistent disk resource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource)
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.class,
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        pdID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource result =
            new io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.pdID_ = pdID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance())
          return this;
        if (other.hasPdID()) {
          bitField0_ |= 0x00000001;
          pdID_ = other.pdID_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object pdID_ = "";
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public boolean hasPdID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public java.lang.String getPdID() {
        java.lang.Object ref = pdID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pdID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public com.google.protobuf.ByteString getPdIDBytes() {
        java.lang.Object ref = pdID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          pdID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public Builder setPdID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        pdID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public Builder clearPdID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        pdID_ = getDefaultInstance().getPdID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ID that identifies Photon Controller persistent disk
       * </pre>
       *
       * <code>optional string pdID = 1;</code>
       */
      public Builder setPdIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        pdID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource)
    private static final io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PhotonPersistentDiskVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<PhotonPersistentDiskVolumeSource>() {
          @java.lang.Override
          public PhotonPersistentDiskVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PhotonPersistentDiskVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PhotonPersistentDiskVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PhotonPersistentDiskVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Pod)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodSpec getSpec();
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodStatus getStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Pod is a collection of containers that can run on a host. This resource is created
   * by clients and scheduled onto hosts.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Pod}
   */
  public static final class Pod extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Pod)
      PodOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Pod.newBuilder() to construct.
    private Pod(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Pod() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Pod(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.PodStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Pod_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Pod_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Pod.class,
              io.kubernetes.client.proto.V1.Pod.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodSpec spec_;
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodSpec getSpec() {
      return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
    }
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.PodStatus status_;
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Pod)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Pod other = (io.kubernetes.client.proto.V1.Pod) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Pod parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Pod parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Pod parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Pod prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Pod is a collection of containers that can run on a host. This resource is created
     * by clients and scheduled onto hosts.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Pod}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Pod)
        io.kubernetes.client.proto.V1.PodOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Pod_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Pod_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Pod.class,
                io.kubernetes.client.proto.V1.Pod.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Pod.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Pod_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Pod getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Pod.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Pod build() {
        io.kubernetes.client.proto.V1.Pod result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Pod buildPartial() {
        io.kubernetes.client.proto.V1.Pod result = new io.kubernetes.client.proto.V1.Pod(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Pod) {
          return mergeFrom((io.kubernetes.client.proto.V1.Pod) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Pod other) {
        if (other == io.kubernetes.client.proto.V1.Pod.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Pod parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Pod) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSpec,
              io.kubernetes.client.proto.V1.PodSpec.Builder,
              io.kubernetes.client.proto.V1.PodSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PodSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PodSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.PodSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.PodSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSpec,
              io.kubernetes.client.proto.V1.PodSpec.Builder,
              io.kubernetes.client.proto.V1.PodSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodSpec,
                  io.kubernetes.client.proto.V1.PodSpec.Builder,
                  io.kubernetes.client.proto.V1.PodSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodStatus,
              io.kubernetes.client.proto.V1.PodStatus.Builder,
              io.kubernetes.client.proto.V1.PodStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PodStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PodStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.PodStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_ != io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.PodStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodStatus,
              io.kubernetes.client.proto.V1.PodStatus.Builder,
              io.kubernetes.client.proto.V1.PodStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodStatus,
                  io.kubernetes.client.proto.V1.PodStatus.Builder,
                  io.kubernetes.client.proto.V1.PodStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Pod)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Pod)
    private static final io.kubernetes.client.proto.V1.Pod DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Pod();
    }

    public static io.kubernetes.client.proto.V1.Pod getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Pod> PARSER =
        new com.google.protobuf.AbstractParser<Pod>() {
          @java.lang.Override
          public Pod parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Pod(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Pod> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Pod> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Pod getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodAffinityOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodAffinity)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        getRequiredDuringSchedulingIgnoredDuringExecutionList();
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTerm getRequiredDuringSchedulingIgnoredDuringExecution(
        int index);
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    int getRequiredDuringSchedulingIgnoredDuringExecutionCount();
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList();
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index);
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    int getPreferredDuringSchedulingIgnoredDuringExecutionCount();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Pod affinity is a group of inter pod affinity scheduling rules.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodAffinity}
   */
  public static final class PodAffinity extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodAffinity)
      PodAffinityOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodAffinity.newBuilder() to construct.
    private PodAffinity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodAffinity() {
      requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
      preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodAffinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  requiredDuringSchedulingIgnoredDuringExecution_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PodAffinityTerm>();
                  mutable_bitField0_ |= 0x00000001;
                }
                requiredDuringSchedulingIgnoredDuringExecution_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodAffinityTerm.PARSER, extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  preferredDuringSchedulingIgnoredDuringExecution_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>();
                  mutable_bitField0_ |= 0x00000002;
                }
                preferredDuringSchedulingIgnoredDuringExecution_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          requiredDuringSchedulingIgnoredDuringExecution_ =
              java.util.Collections.unmodifiableList(
                  requiredDuringSchedulingIgnoredDuringExecution_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              java.util.Collections.unmodifiableList(
                  preferredDuringSchedulingIgnoredDuringExecution_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodAffinity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodAffinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodAffinity.class,
              io.kubernetes.client.proto.V1.PodAffinity.Builder.class);
    }

    public static final int REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        requiredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        getRequiredDuringSchedulingIgnoredDuringExecutionList() {
      return requiredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
      return requiredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public int getRequiredDuringSchedulingIgnoredDuringExecutionCount() {
      return requiredDuringSchedulingIgnoredDuringExecution_.size();
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTerm
        getRequiredDuringSchedulingIgnoredDuringExecution(int index) {
      return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If the affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
      return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
    }

    public static final int PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        preferredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
      return preferredDuringSchedulingIgnoredDuringExecution_.size();
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < requiredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        output.writeMessage(1, requiredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        output.writeMessage(2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < requiredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                1, requiredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodAffinity)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodAffinity other =
          (io.kubernetes.client.proto.V1.PodAffinity) obj;

      boolean result = true;
      result =
          result
              && getRequiredDuringSchedulingIgnoredDuringExecutionList()
                  .equals(other.getRequiredDuringSchedulingIgnoredDuringExecutionList());
      result =
          result
              && getPreferredDuringSchedulingIgnoredDuringExecutionList()
                  .equals(other.getPreferredDuringSchedulingIgnoredDuringExecutionList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getRequiredDuringSchedulingIgnoredDuringExecutionCount() > 0) {
        hash = (37 * hash) + REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getRequiredDuringSchedulingIgnoredDuringExecutionList().hashCode();
      }
      if (getPreferredDuringSchedulingIgnoredDuringExecutionCount() > 0) {
        hash = (37 * hash) + PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getPreferredDuringSchedulingIgnoredDuringExecutionList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodAffinity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Pod affinity is a group of inter pod affinity scheduling rules.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodAffinity}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodAffinity)
        io.kubernetes.client.proto.V1.PodAffinityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAffinity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodAffinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodAffinity.class,
                io.kubernetes.client.proto.V1.PodAffinity.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodAffinity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAffinity_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinity build() {
        io.kubernetes.client.proto.V1.PodAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinity buildPartial() {
        io.kubernetes.client.proto.V1.PodAffinity result =
            new io.kubernetes.client.proto.V1.PodAffinity(this);
        int from_bitField0_ = bitField0_;
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            requiredDuringSchedulingIgnoredDuringExecution_ =
                java.util.Collections.unmodifiableList(
                    requiredDuringSchedulingIgnoredDuringExecution_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            preferredDuringSchedulingIgnoredDuringExecution_ =
                java.util.Collections.unmodifiableList(
                    preferredDuringSchedulingIgnoredDuringExecution_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodAffinity) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodAffinity) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodAffinity other) {
        if (other == io.kubernetes.client.proto.V1.PodAffinity.getDefaultInstance()) return this;
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (!other.requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
              requiredDuringSchedulingIgnoredDuringExecution_ =
                  other.requiredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
              requiredDuringSchedulingIgnoredDuringExecution_.addAll(
                  other.requiredDuringSchedulingIgnoredDuringExecution_);
            }
            onChanged();
          }
        } else {
          if (!other.requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_.isEmpty()) {
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.dispose();
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_ = null;
              requiredDuringSchedulingIgnoredDuringExecution_ =
                  other.requiredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000001);
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
                      : null;
            } else {
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(
                  other.requiredDuringSchedulingIgnoredDuringExecution_);
            }
          }
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
              preferredDuringSchedulingIgnoredDuringExecution_.addAll(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
            onChanged();
          }
        } else {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.dispose();
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ = null;
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
                      : null;
            } else {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodAffinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodAffinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();

      private void ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          requiredDuringSchedulingIgnoredDuringExecution_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PodAffinityTerm>(
                  requiredDuringSchedulingIgnoredDuringExecution_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_;

      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
          getRequiredDuringSchedulingIgnoredDuringExecutionList() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(
              requiredDuringSchedulingIgnoredDuringExecution_);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public int getRequiredDuringSchedulingIgnoredDuringExecutionCount() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.size();
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm
          getRequiredDuringSchedulingIgnoredDuringExecution(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.set(index, value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.set(index, builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(index, value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(index, builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addAllRequiredDuringSchedulingIgnoredDuringExecution(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodAffinityTerm> values) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, requiredDuringSchedulingIgnoredDuringExecution_);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder clearRequiredDuringSchedulingIgnoredDuringExecution() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder removeRequiredDuringSchedulingIgnoredDuringExecution(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.remove(index);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          getRequiredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
          getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(
              requiredDuringSchedulingIgnoredDuringExecution_);
        }
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          addRequiredDuringSchedulingIgnoredDuringExecutionBuilder() {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          addRequiredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If the affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm.Builder>
          getRequiredDuringSchedulingIgnoredDuringExecutionBuilderList() {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodAffinityTerm,
                  io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
                  io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>(
                  requiredDuringSchedulingIgnoredDuringExecution_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return requiredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();

      private void ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>(
                  preferredDuringSchedulingIgnoredDuringExecution_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_;

      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
          getPreferredDuringSchedulingIgnoredDuringExecutionList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.size();
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
          getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addAllPreferredDuringSchedulingIgnoredDuringExecution(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
              values) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, preferredDuringSchedulingIgnoredDuringExecution_);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder clearPreferredDuringSchedulingIgnoredDuringExecution() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder removePreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.remove(index);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder>
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilderList() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>(
                  preferredDuringSchedulingIgnoredDuringExecution_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          preferredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return preferredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodAffinity)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodAffinity)
    private static final io.kubernetes.client.proto.V1.PodAffinity DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodAffinity();
    }

    public static io.kubernetes.client.proto.V1.PodAffinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodAffinity> PARSER =
        new com.google.protobuf.AbstractParser<PodAffinity>() {
          @java.lang.Override
          public PodAffinity parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodAffinity(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodAffinity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodAffinity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodAffinity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodAffinityTermOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodAffinityTerm)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    boolean hasLabelSelector();
    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    io.kubernetes.client.proto.Meta.LabelSelector getLabelSelector();
    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getLabelSelectorOrBuilder();

    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    java.util.List<java.lang.String> getNamespacesList();
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    int getNamespacesCount();
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    java.lang.String getNamespaces(int index);
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    com.google.protobuf.ByteString getNamespacesBytes(int index);

    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    boolean hasTopologyKey();
    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    java.lang.String getTopologyKey();
    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    com.google.protobuf.ByteString getTopologyKeyBytes();
  }
  /**
   *
   *
   * <pre>
   * Defines a set of pods (namely those matching the labelSelector
   * relative to the given namespace(s)) that this pod should be
   * co-located (affinity) or not co-located (anti-affinity) with,
   * where co-located is defined as running on a node whose value of
   * the label with key &lt;topologyKey&gt; matches that of any node on which
   * a pod of the set of pods is running
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodAffinityTerm}
   */
  public static final class PodAffinityTerm extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodAffinityTerm)
      PodAffinityTermOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodAffinityTerm.newBuilder() to construct.
    private PodAffinityTerm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodAffinityTerm() {
      namespaces_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      topologyKey_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodAffinityTerm(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.LabelSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = labelSelector_.toBuilder();
                }
                labelSelector_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.LabelSelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(labelSelector_);
                  labelSelector_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  namespaces_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                namespaces_.add(bs);
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                topologyKey_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          namespaces_ = namespaces_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodAffinityTerm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodAffinityTerm.class,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder.class);
    }

    private int bitField0_;
    public static final int LABELSELECTOR_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.LabelSelector labelSelector_;
    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    public boolean hasLabelSelector() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelector getLabelSelector() {
      return labelSelector_ == null
          ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
          : labelSelector_;
    }
    /**
     *
     *
     * <pre>
     * A label query over a set of resources, in this case pods.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getLabelSelectorOrBuilder() {
      return labelSelector_ == null
          ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
          : labelSelector_;
    }

    public static final int NAMESPACES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList namespaces_;
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getNamespacesList() {
      return namespaces_;
    }
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    public int getNamespacesCount() {
      return namespaces_.size();
    }
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    public java.lang.String getNamespaces(int index) {
      return namespaces_.get(index);
    }
    /**
     *
     *
     * <pre>
     * namespaces specifies which namespaces the labelSelector applies to (matches against);
     * null or empty list means "this pod's namespace"
     * +optional
     * </pre>
     *
     * <code>repeated string namespaces = 2;</code>
     */
    public com.google.protobuf.ByteString getNamespacesBytes(int index) {
      return namespaces_.getByteString(index);
    }

    public static final int TOPOLOGYKEY_FIELD_NUMBER = 3;
    private volatile java.lang.Object topologyKey_;
    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    public boolean hasTopologyKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    public java.lang.String getTopologyKey() {
      java.lang.Object ref = topologyKey_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          topologyKey_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
     * the labelSelector in the specified namespaces, where co-located is defined as running on a node
     * whose value of the label with key topologyKey matches that of any node on which any of the
     * selected pods is running.
     * Empty topologyKey is not allowed.
     * </pre>
     *
     * <code>optional string topologyKey = 3;</code>
     */
    public com.google.protobuf.ByteString getTopologyKeyBytes() {
      java.lang.Object ref = topologyKey_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        topologyKey_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLabelSelector());
      }
      for (int i = 0; i < namespaces_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, namespaces_.getRaw(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, topologyKey_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLabelSelector());
      }
      {
        int dataSize = 0;
        for (int i = 0; i < namespaces_.size(); i++) {
          dataSize += computeStringSizeNoTag(namespaces_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getNamespacesList().size();
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, topologyKey_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodAffinityTerm)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodAffinityTerm other =
          (io.kubernetes.client.proto.V1.PodAffinityTerm) obj;

      boolean result = true;
      result = result && (hasLabelSelector() == other.hasLabelSelector());
      if (hasLabelSelector()) {
        result = result && getLabelSelector().equals(other.getLabelSelector());
      }
      result = result && getNamespacesList().equals(other.getNamespacesList());
      result = result && (hasTopologyKey() == other.hasTopologyKey());
      if (hasTopologyKey()) {
        result = result && getTopologyKey().equals(other.getTopologyKey());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLabelSelector()) {
        hash = (37 * hash) + LABELSELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getLabelSelector().hashCode();
      }
      if (getNamespacesCount() > 0) {
        hash = (37 * hash) + NAMESPACES_FIELD_NUMBER;
        hash = (53 * hash) + getNamespacesList().hashCode();
      }
      if (hasTopologyKey()) {
        hash = (37 * hash) + TOPOLOGYKEY_FIELD_NUMBER;
        hash = (53 * hash) + getTopologyKey().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodAffinityTerm prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Defines a set of pods (namely those matching the labelSelector
     * relative to the given namespace(s)) that this pod should be
     * co-located (affinity) or not co-located (anti-affinity) with,
     * where co-located is defined as running on a node whose value of
     * the label with key &lt;topologyKey&gt; matches that of any node on which
     * a pod of the set of pods is running
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodAffinityTerm}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodAffinityTerm)
        io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodAffinityTerm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodAffinityTerm.class,
                io.kubernetes.client.proto.V1.PodAffinityTerm.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodAffinityTerm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLabelSelectorFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (labelSelectorBuilder_ == null) {
          labelSelector_ = null;
        } else {
          labelSelectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        namespaces_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        topologyKey_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinityTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinityTerm build() {
        io.kubernetes.client.proto.V1.PodAffinityTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAffinityTerm buildPartial() {
        io.kubernetes.client.proto.V1.PodAffinityTerm result =
            new io.kubernetes.client.proto.V1.PodAffinityTerm(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (labelSelectorBuilder_ == null) {
          result.labelSelector_ = labelSelector_;
        } else {
          result.labelSelector_ = labelSelectorBuilder_.build();
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          namespaces_ = namespaces_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.namespaces_ = namespaces_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.topologyKey_ = topologyKey_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodAffinityTerm) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodAffinityTerm) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodAffinityTerm other) {
        if (other == io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance())
          return this;
        if (other.hasLabelSelector()) {
          mergeLabelSelector(other.getLabelSelector());
        }
        if (!other.namespaces_.isEmpty()) {
          if (namespaces_.isEmpty()) {
            namespaces_ = other.namespaces_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureNamespacesIsMutable();
            namespaces_.addAll(other.namespaces_);
          }
          onChanged();
        }
        if (other.hasTopologyKey()) {
          bitField0_ |= 0x00000004;
          topologyKey_ = other.topologyKey_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodAffinityTerm parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodAffinityTerm) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.LabelSelector labelSelector_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.LabelSelector,
              io.kubernetes.client.proto.Meta.LabelSelector.Builder,
              io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>
          labelSelectorBuilder_;
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public boolean hasLabelSelector() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelector getLabelSelector() {
        if (labelSelectorBuilder_ == null) {
          return labelSelector_ == null
              ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
              : labelSelector_;
        } else {
          return labelSelectorBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public Builder setLabelSelector(io.kubernetes.client.proto.Meta.LabelSelector value) {
        if (labelSelectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          labelSelector_ = value;
          onChanged();
        } else {
          labelSelectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public Builder setLabelSelector(
          io.kubernetes.client.proto.Meta.LabelSelector.Builder builderForValue) {
        if (labelSelectorBuilder_ == null) {
          labelSelector_ = builderForValue.build();
          onChanged();
        } else {
          labelSelectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public Builder mergeLabelSelector(io.kubernetes.client.proto.Meta.LabelSelector value) {
        if (labelSelectorBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && labelSelector_ != null
              && labelSelector_
                  != io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()) {
            labelSelector_ =
                io.kubernetes.client.proto.Meta.LabelSelector.newBuilder(labelSelector_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            labelSelector_ = value;
          }
          onChanged();
        } else {
          labelSelectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public Builder clearLabelSelector() {
        if (labelSelectorBuilder_ == null) {
          labelSelector_ = null;
          onChanged();
        } else {
          labelSelectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelector.Builder getLabelSelectorBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLabelSelectorFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder getLabelSelectorOrBuilder() {
        if (labelSelectorBuilder_ != null) {
          return labelSelectorBuilder_.getMessageOrBuilder();
        } else {
          return labelSelector_ == null
              ? io.kubernetes.client.proto.Meta.LabelSelector.getDefaultInstance()
              : labelSelector_;
        }
      }
      /**
       *
       *
       * <pre>
       * A label query over a set of resources, in this case pods.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector labelSelector = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.LabelSelector,
              io.kubernetes.client.proto.Meta.LabelSelector.Builder,
              io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>
          getLabelSelectorFieldBuilder() {
        if (labelSelectorBuilder_ == null) {
          labelSelectorBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.LabelSelector,
                  io.kubernetes.client.proto.Meta.LabelSelector.Builder,
                  io.kubernetes.client.proto.Meta.LabelSelectorOrBuilder>(
                  getLabelSelector(), getParentForChildren(), isClean());
          labelSelector_ = null;
        }
        return labelSelectorBuilder_;
      }

      private com.google.protobuf.LazyStringList namespaces_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureNamespacesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          namespaces_ = new com.google.protobuf.LazyStringArrayList(namespaces_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getNamespacesList() {
        return namespaces_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public int getNamespacesCount() {
        return namespaces_.size();
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public java.lang.String getNamespaces(int index) {
        return namespaces_.get(index);
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public com.google.protobuf.ByteString getNamespacesBytes(int index) {
        return namespaces_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public Builder setNamespaces(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespacesIsMutable();
        namespaces_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public Builder addNamespaces(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespacesIsMutable();
        namespaces_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public Builder addAllNamespaces(java.lang.Iterable<java.lang.String> values) {
        ensureNamespacesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, namespaces_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public Builder clearNamespaces() {
        namespaces_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * namespaces specifies which namespaces the labelSelector applies to (matches against);
       * null or empty list means "this pod's namespace"
       * +optional
       * </pre>
       *
       * <code>repeated string namespaces = 2;</code>
       */
      public Builder addNamespacesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNamespacesIsMutable();
        namespaces_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object topologyKey_ = "";
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public boolean hasTopologyKey() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public java.lang.String getTopologyKey() {
        java.lang.Object ref = topologyKey_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            topologyKey_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public com.google.protobuf.ByteString getTopologyKeyBytes() {
        java.lang.Object ref = topologyKey_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          topologyKey_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public Builder setTopologyKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        topologyKey_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public Builder clearTopologyKey() {
        bitField0_ = (bitField0_ & ~0x00000004);
        topologyKey_ = getDefaultInstance().getTopologyKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
       * the labelSelector in the specified namespaces, where co-located is defined as running on a node
       * whose value of the label with key topologyKey matches that of any node on which any of the
       * selected pods is running.
       * Empty topologyKey is not allowed.
       * </pre>
       *
       * <code>optional string topologyKey = 3;</code>
       */
      public Builder setTopologyKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        topologyKey_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodAffinityTerm)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodAffinityTerm)
    private static final io.kubernetes.client.proto.V1.PodAffinityTerm DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodAffinityTerm();
    }

    public static io.kubernetes.client.proto.V1.PodAffinityTerm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodAffinityTerm> PARSER =
        new com.google.protobuf.AbstractParser<PodAffinityTerm>() {
          @java.lang.Override
          public PodAffinityTerm parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodAffinityTerm(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodAffinityTerm> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodAffinityTerm> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodAffinityTerm getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodAntiAffinityOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodAntiAffinity)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        getRequiredDuringSchedulingIgnoredDuringExecutionList();
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTerm getRequiredDuringSchedulingIgnoredDuringExecution(
        int index);
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    int getRequiredDuringSchedulingIgnoredDuringExecutionCount();
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList();
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index);
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    int getPreferredDuringSchedulingIgnoredDuringExecutionCount();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList();
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * Pod anti affinity is a group of inter pod anti affinity scheduling rules.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodAntiAffinity}
   */
  public static final class PodAntiAffinity extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodAntiAffinity)
      PodAntiAffinityOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodAntiAffinity.newBuilder() to construct.
    private PodAntiAffinity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodAntiAffinity() {
      requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
      preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodAntiAffinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  requiredDuringSchedulingIgnoredDuringExecution_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PodAffinityTerm>();
                  mutable_bitField0_ |= 0x00000001;
                }
                requiredDuringSchedulingIgnoredDuringExecution_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodAffinityTerm.PARSER, extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  preferredDuringSchedulingIgnoredDuringExecution_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>();
                  mutable_bitField0_ |= 0x00000002;
                }
                preferredDuringSchedulingIgnoredDuringExecution_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          requiredDuringSchedulingIgnoredDuringExecution_ =
              java.util.Collections.unmodifiableList(
                  requiredDuringSchedulingIgnoredDuringExecution_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              java.util.Collections.unmodifiableList(
                  preferredDuringSchedulingIgnoredDuringExecution_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodAntiAffinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodAntiAffinity.class,
              io.kubernetes.client.proto.V1.PodAntiAffinity.Builder.class);
    }

    public static final int REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        requiredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
        getRequiredDuringSchedulingIgnoredDuringExecutionList() {
      return requiredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
      return requiredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public int getRequiredDuringSchedulingIgnoredDuringExecutionCount() {
      return requiredDuringSchedulingIgnoredDuringExecution_.size();
    }
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTerm
        getRequiredDuringSchedulingIgnoredDuringExecution(int index) {
      return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If the anti-affinity requirements specified by this field are not met at
     * scheduling time, the pod will not be scheduled onto the node.
     * If the anti-affinity requirements specified by this field cease to be met
     * at some point during pod execution (e.g. due to a pod label update), the
     * system may or may not try to eventually evict the pod from its node.
     * When there are multiple elements, the lists of nodes corresponding to each
     * podAffinityTerm are intersected, i.e. all terms must be satisfied.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
        getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
      return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
    }

    public static final int PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        preferredDuringSchedulingIgnoredDuringExecution_;
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
        getPreferredDuringSchedulingIgnoredDuringExecutionList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
      return preferredDuringSchedulingIgnoredDuringExecution_;
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
      return preferredDuringSchedulingIgnoredDuringExecution_.size();
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
        getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The scheduler will prefer to schedule pods to nodes that satisfy
     * the anti-affinity expressions specified by this field, but it may choose
     * a node that violates one or more of the expressions. The node that is
     * most preferred is the one with the greatest sum of weights, i.e.
     * for each node that meets all of the scheduling requirements (resource
     * request, requiredDuringScheduling anti-affinity expressions, etc.),
     * compute a sum by iterating through the elements of this field and adding
     * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
     * node(s) with the highest sum are the most preferred.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
     * </code>
     */
    public io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
        getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
      return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < requiredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        output.writeMessage(1, requiredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        output.writeMessage(2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < requiredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                1, requiredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      for (int i = 0; i < preferredDuringSchedulingIgnoredDuringExecution_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                2, preferredDuringSchedulingIgnoredDuringExecution_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodAntiAffinity)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodAntiAffinity other =
          (io.kubernetes.client.proto.V1.PodAntiAffinity) obj;

      boolean result = true;
      result =
          result
              && getRequiredDuringSchedulingIgnoredDuringExecutionList()
                  .equals(other.getRequiredDuringSchedulingIgnoredDuringExecutionList());
      result =
          result
              && getPreferredDuringSchedulingIgnoredDuringExecutionList()
                  .equals(other.getPreferredDuringSchedulingIgnoredDuringExecutionList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getRequiredDuringSchedulingIgnoredDuringExecutionCount() > 0) {
        hash = (37 * hash) + REQUIREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getRequiredDuringSchedulingIgnoredDuringExecutionList().hashCode();
      }
      if (getPreferredDuringSchedulingIgnoredDuringExecutionCount() > 0) {
        hash = (37 * hash) + PREFERREDDURINGSCHEDULINGIGNOREDDURINGEXECUTION_FIELD_NUMBER;
        hash = (53 * hash) + getPreferredDuringSchedulingIgnoredDuringExecutionList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodAntiAffinity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Pod anti affinity is a group of inter pod anti affinity scheduling rules.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodAntiAffinity}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodAntiAffinity)
        io.kubernetes.client.proto.V1.PodAntiAffinityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodAntiAffinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodAntiAffinity.class,
                io.kubernetes.client.proto.V1.PodAntiAffinity.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodAntiAffinity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAntiAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAntiAffinity build() {
        io.kubernetes.client.proto.V1.PodAntiAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAntiAffinity buildPartial() {
        io.kubernetes.client.proto.V1.PodAntiAffinity result =
            new io.kubernetes.client.proto.V1.PodAntiAffinity(this);
        int from_bitField0_ = bitField0_;
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            requiredDuringSchedulingIgnoredDuringExecution_ =
                java.util.Collections.unmodifiableList(
                    requiredDuringSchedulingIgnoredDuringExecution_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.requiredDuringSchedulingIgnoredDuringExecution_ =
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            preferredDuringSchedulingIgnoredDuringExecution_ =
                java.util.Collections.unmodifiableList(
                    preferredDuringSchedulingIgnoredDuringExecution_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecution_;
        } else {
          result.preferredDuringSchedulingIgnoredDuringExecution_ =
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodAntiAffinity) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodAntiAffinity) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodAntiAffinity other) {
        if (other == io.kubernetes.client.proto.V1.PodAntiAffinity.getDefaultInstance())
          return this;
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (!other.requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
              requiredDuringSchedulingIgnoredDuringExecution_ =
                  other.requiredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
              requiredDuringSchedulingIgnoredDuringExecution_.addAll(
                  other.requiredDuringSchedulingIgnoredDuringExecution_);
            }
            onChanged();
          }
        } else {
          if (!other.requiredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_.isEmpty()) {
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.dispose();
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_ = null;
              requiredDuringSchedulingIgnoredDuringExecution_ =
                  other.requiredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000001);
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
                      : null;
            } else {
              requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(
                  other.requiredDuringSchedulingIgnoredDuringExecution_);
            }
          }
        }
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
              preferredDuringSchedulingIgnoredDuringExecution_.addAll(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
            onChanged();
          }
        } else {
          if (!other.preferredDuringSchedulingIgnoredDuringExecution_.isEmpty()) {
            if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_.isEmpty()) {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.dispose();
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ = null;
              preferredDuringSchedulingIgnoredDuringExecution_ =
                  other.preferredDuringSchedulingIgnoredDuringExecution_;
              bitField0_ = (bitField0_ & ~0x00000002);
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
                      : null;
            } else {
              preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(
                  other.preferredDuringSchedulingIgnoredDuringExecution_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodAntiAffinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodAntiAffinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();

      private void ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          requiredDuringSchedulingIgnoredDuringExecution_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PodAffinityTerm>(
                  requiredDuringSchedulingIgnoredDuringExecution_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_;

      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm>
          getRequiredDuringSchedulingIgnoredDuringExecutionList() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(
              requiredDuringSchedulingIgnoredDuringExecution_);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public int getRequiredDuringSchedulingIgnoredDuringExecutionCount() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.size();
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm
          getRequiredDuringSchedulingIgnoredDuringExecution(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.set(index, value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder setRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.set(index, builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(index, value);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addRequiredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.add(index, builderForValue.build());
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder addAllRequiredDuringSchedulingIgnoredDuringExecution(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodAffinityTerm> values) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, requiredDuringSchedulingIgnoredDuringExecution_);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder clearRequiredDuringSchedulingIgnoredDuringExecution() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public Builder removeRequiredDuringSchedulingIgnoredDuringExecution(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensureRequiredDuringSchedulingIgnoredDuringExecutionIsMutable();
          requiredDuringSchedulingIgnoredDuringExecution_.remove(index);
          onChanged();
        } else {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          getRequiredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder
          getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return requiredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          getRequiredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return requiredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(
              requiredDuringSchedulingIgnoredDuringExecution_);
        }
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          addRequiredDuringSchedulingIgnoredDuringExecutionBuilder() {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder
          addRequiredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If the anti-affinity requirements specified by this field are not met at
       * scheduling time, the pod will not be scheduled onto the node.
       * If the anti-affinity requirements specified by this field cease to be met
       * at some point during pod execution (e.g. due to a pod label update), the
       * system may or may not try to eventually evict the pod from its node.
       * When there are multiple elements, the lists of nodes corresponding to each
       * podAffinityTerm are intersected, i.e. all terms must be satisfied.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.PodAffinityTerm requiredDuringSchedulingIgnoredDuringExecution = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodAffinityTerm.Builder>
          getRequiredDuringSchedulingIgnoredDuringExecutionBuilderList() {
        return getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          getRequiredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (requiredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          requiredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodAffinityTerm,
                  io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
                  io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>(
                  requiredDuringSchedulingIgnoredDuringExecution_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          requiredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return requiredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();

      private void ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          preferredDuringSchedulingIgnoredDuringExecution_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>(
                  preferredDuringSchedulingIgnoredDuringExecution_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_;

      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
          getPreferredDuringSchedulingIgnoredDuringExecutionList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public int getPreferredDuringSchedulingIgnoredDuringExecutionCount() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.size();
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm
          getPreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder setPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.set(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.setMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm value) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, value);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addPreferredDuringSchedulingIgnoredDuringExecution(
          int index,
          io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder builderForValue) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.add(index, builderForValue.build());
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addMessage(
              index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder addAllPreferredDuringSchedulingIgnoredDuringExecution(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTerm>
              values) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, preferredDuringSchedulingIgnoredDuringExecution_);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder clearPreferredDuringSchedulingIgnoredDuringExecution() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecution_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public Builder removePreferredDuringSchedulingIgnoredDuringExecution(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          ensurePreferredDuringSchedulingIgnoredDuringExecutionIsMutable();
          preferredDuringSchedulingIgnoredDuringExecution_.remove(index);
          onChanged();
        } else {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilder(int index) {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          return preferredDuringSchedulingIgnoredDuringExecution_.get(index);
        } else {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionOrBuilderList() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ != null) {
          return preferredDuringSchedulingIgnoredDuringExecutionBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(
              preferredDuringSchedulingIgnoredDuringExecution_);
        }
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder
          addPreferredDuringSchedulingIgnoredDuringExecutionBuilder(int index) {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The scheduler will prefer to schedule pods to nodes that satisfy
       * the anti-affinity expressions specified by this field, but it may choose
       * a node that violates one or more of the expressions. The node that is
       * most preferred is the one with the greatest sum of weights, i.e.
       * for each node that meets all of the scheduling requirements (resource
       * request, requiredDuringScheduling anti-affinity expressions, etc.),
       * compute a sum by iterating through the elements of this field and adding
       * "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the
       * node(s) with the highest sum are the most preferred.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.WeightedPodAffinityTerm preferredDuringSchedulingIgnoredDuringExecution = 2;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder>
          getPreferredDuringSchedulingIgnoredDuringExecutionBuilderList() {
        return getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>
          getPreferredDuringSchedulingIgnoredDuringExecutionFieldBuilder() {
        if (preferredDuringSchedulingIgnoredDuringExecutionBuilder_ == null) {
          preferredDuringSchedulingIgnoredDuringExecutionBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTerm,
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder,
                  io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder>(
                  preferredDuringSchedulingIgnoredDuringExecution_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          preferredDuringSchedulingIgnoredDuringExecution_ = null;
        }
        return preferredDuringSchedulingIgnoredDuringExecutionBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodAntiAffinity)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodAntiAffinity)
    private static final io.kubernetes.client.proto.V1.PodAntiAffinity DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodAntiAffinity();
    }

    public static io.kubernetes.client.proto.V1.PodAntiAffinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodAntiAffinity> PARSER =
        new com.google.protobuf.AbstractParser<PodAntiAffinity>() {
          @java.lang.Override
          public PodAntiAffinity parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodAntiAffinity(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodAntiAffinity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodAntiAffinity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodAntiAffinity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodAttachOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodAttachOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Stdin if true, redirects the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    boolean hasStdin();
    /**
     *
     *
     * <pre>
     * Stdin if true, redirects the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    boolean getStdin();

    /**
     *
     *
     * <pre>
     * Stdout if true indicates that stdout is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    boolean hasStdout();
    /**
     *
     *
     * <pre>
     * Stdout if true indicates that stdout is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    boolean getStdout();

    /**
     *
     *
     * <pre>
     * Stderr if true indicates that stderr is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    boolean hasStderr();
    /**
     *
     *
     * <pre>
     * Stderr if true indicates that stderr is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    boolean getStderr();

    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the attach call.
     * This is passed through the container runtime so the tty
     * is allocated on the worker node by the container runtime.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    boolean hasTty();
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the attach call.
     * This is passed through the container runtime so the tty
     * is allocated on the worker node by the container runtime.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    boolean getTty();

    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    boolean hasContainer();
    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    java.lang.String getContainer();
    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    com.google.protobuf.ByteString getContainerBytes();
  }
  /**
   *
   *
   * <pre>
   * PodAttachOptions is the query options to a Pod's remote attach call.
   * ---
   * TODO: merge w/ PodExecOptions below for stdin, stdout, etc
   * and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodAttachOptions}
   */
  public static final class PodAttachOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodAttachOptions)
      PodAttachOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodAttachOptions.newBuilder() to construct.
    private PodAttachOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodAttachOptions() {
      stdin_ = false;
      stdout_ = false;
      stderr_ = false;
      tty_ = false;
      container_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodAttachOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                stdin_ = input.readBool();
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                stdout_ = input.readBool();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                stderr_ = input.readBool();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                tty_ = input.readBool();
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                container_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodAttachOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodAttachOptions.class,
              io.kubernetes.client.proto.V1.PodAttachOptions.Builder.class);
    }

    private int bitField0_;
    public static final int STDIN_FIELD_NUMBER = 1;
    private boolean stdin_;
    /**
     *
     *
     * <pre>
     * Stdin if true, redirects the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    public boolean hasStdin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Stdin if true, redirects the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    public boolean getStdin() {
      return stdin_;
    }

    public static final int STDOUT_FIELD_NUMBER = 2;
    private boolean stdout_;
    /**
     *
     *
     * <pre>
     * Stdout if true indicates that stdout is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    public boolean hasStdout() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Stdout if true indicates that stdout is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    public boolean getStdout() {
      return stdout_;
    }

    public static final int STDERR_FIELD_NUMBER = 3;
    private boolean stderr_;
    /**
     *
     *
     * <pre>
     * Stderr if true indicates that stderr is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    public boolean hasStderr() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Stderr if true indicates that stderr is to be redirected for the attach call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    public boolean getStderr() {
      return stderr_;
    }

    public static final int TTY_FIELD_NUMBER = 4;
    private boolean tty_;
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the attach call.
     * This is passed through the container runtime so the tty
     * is allocated on the worker node by the container runtime.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    public boolean hasTty() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the attach call.
     * This is passed through the container runtime so the tty
     * is allocated on the worker node by the container runtime.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    public boolean getTty() {
      return tty_;
    }

    public static final int CONTAINER_FIELD_NUMBER = 5;
    private volatile java.lang.Object container_;
    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public boolean hasContainer() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public java.lang.String getContainer() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          container_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public com.google.protobuf.ByteString getContainerBytes() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        container_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, stdin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, stdout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, stderr_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, tty_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, container_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, stdin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, stdout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, stderr_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, tty_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, container_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodAttachOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodAttachOptions other =
          (io.kubernetes.client.proto.V1.PodAttachOptions) obj;

      boolean result = true;
      result = result && (hasStdin() == other.hasStdin());
      if (hasStdin()) {
        result = result && (getStdin() == other.getStdin());
      }
      result = result && (hasStdout() == other.hasStdout());
      if (hasStdout()) {
        result = result && (getStdout() == other.getStdout());
      }
      result = result && (hasStderr() == other.hasStderr());
      if (hasStderr()) {
        result = result && (getStderr() == other.getStderr());
      }
      result = result && (hasTty() == other.hasTty());
      if (hasTty()) {
        result = result && (getTty() == other.getTty());
      }
      result = result && (hasContainer() == other.hasContainer());
      if (hasContainer()) {
        result = result && getContainer().equals(other.getContainer());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStdin()) {
        hash = (37 * hash) + STDIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdin());
      }
      if (hasStdout()) {
        hash = (37 * hash) + STDOUT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdout());
      }
      if (hasStderr()) {
        hash = (37 * hash) + STDERR_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStderr());
      }
      if (hasTty()) {
        hash = (37 * hash) + TTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getTty());
      }
      if (hasContainer()) {
        hash = (37 * hash) + CONTAINER_FIELD_NUMBER;
        hash = (53 * hash) + getContainer().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodAttachOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodAttachOptions is the query options to a Pod's remote attach call.
     * ---
     * TODO: merge w/ PodExecOptions below for stdin, stdout, etc
     * and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodAttachOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodAttachOptions)
        io.kubernetes.client.proto.V1.PodAttachOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodAttachOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodAttachOptions.class,
                io.kubernetes.client.proto.V1.PodAttachOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodAttachOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        stdin_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        stdout_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        stderr_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        tty_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        container_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAttachOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodAttachOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAttachOptions build() {
        io.kubernetes.client.proto.V1.PodAttachOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodAttachOptions buildPartial() {
        io.kubernetes.client.proto.V1.PodAttachOptions result =
            new io.kubernetes.client.proto.V1.PodAttachOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.stdin_ = stdin_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.stdout_ = stdout_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.stderr_ = stderr_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tty_ = tty_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.container_ = container_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodAttachOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodAttachOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodAttachOptions other) {
        if (other == io.kubernetes.client.proto.V1.PodAttachOptions.getDefaultInstance())
          return this;
        if (other.hasStdin()) {
          setStdin(other.getStdin());
        }
        if (other.hasStdout()) {
          setStdout(other.getStdout());
        }
        if (other.hasStderr()) {
          setStderr(other.getStderr());
        }
        if (other.hasTty()) {
          setTty(other.getTty());
        }
        if (other.hasContainer()) {
          bitField0_ |= 0x00000010;
          container_ = other.container_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodAttachOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodAttachOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private boolean stdin_;
      /**
       *
       *
       * <pre>
       * Stdin if true, redirects the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public boolean hasStdin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Stdin if true, redirects the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public boolean getStdin() {
        return stdin_;
      }
      /**
       *
       *
       * <pre>
       * Stdin if true, redirects the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public Builder setStdin(boolean value) {
        bitField0_ |= 0x00000001;
        stdin_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Stdin if true, redirects the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public Builder clearStdin() {
        bitField0_ = (bitField0_ & ~0x00000001);
        stdin_ = false;
        onChanged();
        return this;
      }

      private boolean stdout_;
      /**
       *
       *
       * <pre>
       * Stdout if true indicates that stdout is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public boolean hasStdout() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Stdout if true indicates that stdout is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public boolean getStdout() {
        return stdout_;
      }
      /**
       *
       *
       * <pre>
       * Stdout if true indicates that stdout is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public Builder setStdout(boolean value) {
        bitField0_ |= 0x00000002;
        stdout_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Stdout if true indicates that stdout is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public Builder clearStdout() {
        bitField0_ = (bitField0_ & ~0x00000002);
        stdout_ = false;
        onChanged();
        return this;
      }

      private boolean stderr_;
      /**
       *
       *
       * <pre>
       * Stderr if true indicates that stderr is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public boolean hasStderr() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Stderr if true indicates that stderr is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public boolean getStderr() {
        return stderr_;
      }
      /**
       *
       *
       * <pre>
       * Stderr if true indicates that stderr is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public Builder setStderr(boolean value) {
        bitField0_ |= 0x00000004;
        stderr_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Stderr if true indicates that stderr is to be redirected for the attach call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public Builder clearStderr() {
        bitField0_ = (bitField0_ & ~0x00000004);
        stderr_ = false;
        onChanged();
        return this;
      }

      private boolean tty_;
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the attach call.
       * This is passed through the container runtime so the tty
       * is allocated on the worker node by the container runtime.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public boolean hasTty() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the attach call.
       * This is passed through the container runtime so the tty
       * is allocated on the worker node by the container runtime.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public boolean getTty() {
        return tty_;
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the attach call.
       * This is passed through the container runtime so the tty
       * is allocated on the worker node by the container runtime.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public Builder setTty(boolean value) {
        bitField0_ |= 0x00000008;
        tty_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the attach call.
       * This is passed through the container runtime so the tty
       * is allocated on the worker node by the container runtime.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public Builder clearTty() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tty_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object container_ = "";
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public boolean hasContainer() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public java.lang.String getContainer() {
        java.lang.Object ref = container_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            container_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public com.google.protobuf.ByteString getContainerBytes() {
        java.lang.Object ref = container_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          container_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder setContainer(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        container_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder clearContainer() {
        bitField0_ = (bitField0_ & ~0x00000010);
        container_ = getDefaultInstance().getContainer();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder setContainerBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        container_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodAttachOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodAttachOptions)
    private static final io.kubernetes.client.proto.V1.PodAttachOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodAttachOptions();
    }

    public static io.kubernetes.client.proto.V1.PodAttachOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodAttachOptions> PARSER =
        new com.google.protobuf.AbstractParser<PodAttachOptions>() {
          @java.lang.Override
          public PodAttachOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodAttachOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodAttachOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodAttachOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodAttachOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    boolean hasLastProbeTime();
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastProbeTime();
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    boolean hasLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTransitionTime();
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * PodCondition contains details for the current condition of this pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodCondition}
   */
  public static final class PodCondition extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodCondition)
      PodConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodCondition.newBuilder() to construct.
    private PodCondition(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodCondition() {
      type_ = "";
      status_ = "";
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastProbeTime_.toBuilder();
                }
                lastProbeTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastProbeTime_);
                  lastProbeTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = lastTransitionTime_.toBuilder();
                }
                lastTransitionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTransitionTime_);
                  lastTransitionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                reason_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodCondition.class,
              io.kubernetes.client.proto.V1.PodCondition.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type is the type of the condition.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Status is the status of the condition.
     * Can be True, False, Unknown.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTPROBETIME_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Time lastProbeTime_;
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public boolean hasLastProbeTime() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastProbeTime() {
      return lastProbeTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastProbeTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time we probed the condition.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder() {
      return lastProbeTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastProbeTime_;
    }

    public static final int LASTTRANSITIONTIME_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.Time lastTransitionTime_;
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public boolean hasLastTransitionTime() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }
    /**
     *
     *
     * <pre>
     * Last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 5;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Unique, one-word, CamelCase reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 5;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 6;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Human-readable message indicating details about last transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 6;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastProbeTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastProbeTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(4, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, reason_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodCondition)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodCondition other =
          (io.kubernetes.client.proto.V1.PodCondition) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasLastProbeTime() == other.hasLastProbeTime());
      if (hasLastProbeTime()) {
        result = result && getLastProbeTime().equals(other.getLastProbeTime());
      }
      result = result && (hasLastTransitionTime() == other.hasLastTransitionTime());
      if (hasLastTransitionTime()) {
        result = result && getLastTransitionTime().equals(other.getLastTransitionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasLastProbeTime()) {
        hash = (37 * hash) + LASTPROBETIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastProbeTime().hashCode();
      }
      if (hasLastTransitionTime()) {
        hash = (37 * hash) + LASTTRANSITIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodCondition contains details for the current condition of this pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodCondition)
        io.kubernetes.client.proto.V1.PodConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodCondition.class,
                io.kubernetes.client.proto.V1.PodCondition.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLastProbeTimeFieldBuilder();
          getLastTransitionTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = null;
        } else {
          lastProbeTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodCondition_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodCondition getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodCondition.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodCondition build() {
        io.kubernetes.client.proto.V1.PodCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodCondition buildPartial() {
        io.kubernetes.client.proto.V1.PodCondition result =
            new io.kubernetes.client.proto.V1.PodCondition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastProbeTimeBuilder_ == null) {
          result.lastProbeTime_ = lastProbeTime_;
        } else {
          result.lastProbeTime_ = lastProbeTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (lastTransitionTimeBuilder_ == null) {
          result.lastTransitionTime_ = lastTransitionTime_;
        } else {
          result.lastTransitionTime_ = lastTransitionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodCondition) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodCondition) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodCondition other) {
        if (other == io.kubernetes.client.proto.V1.PodCondition.getDefaultInstance()) return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasLastProbeTime()) {
          mergeLastProbeTime(other.getLastProbeTime());
        }
        if (other.hasLastTransitionTime()) {
          mergeLastTransitionTime(other.getLastTransitionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000010;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000020;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodCondition) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is the type of the condition.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the status of the condition.
       * Can be True, False, Unknown.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time lastProbeTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastProbeTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public boolean hasLastProbeTime() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastProbeTime() {
        if (lastProbeTimeBuilder_ == null) {
          return lastProbeTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastProbeTime_;
        } else {
          return lastProbeTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder setLastProbeTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastProbeTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastProbeTime_ = value;
          onChanged();
        } else {
          lastProbeTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder setLastProbeTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = builderForValue.build();
          onChanged();
        } else {
          lastProbeTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder mergeLastProbeTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastProbeTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastProbeTime_ != null
              && lastProbeTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastProbeTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastProbeTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastProbeTime_ = value;
          }
          onChanged();
        } else {
          lastProbeTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public Builder clearLastProbeTime() {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTime_ = null;
          onChanged();
        } else {
          lastProbeTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastProbeTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastProbeTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastProbeTimeOrBuilder() {
        if (lastProbeTimeBuilder_ != null) {
          return lastProbeTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastProbeTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastProbeTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time we probed the condition.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastProbeTime = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastProbeTimeFieldBuilder() {
        if (lastProbeTimeBuilder_ == null) {
          lastProbeTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastProbeTime(), getParentForChildren(), isClean());
          lastProbeTime_ = null;
        }
        return lastProbeTimeBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time lastTransitionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTransitionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public boolean hasLastTransitionTime() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        } else {
          return lastTransitionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTime_ = value;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder setLastTransitionTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = builderForValue.build();
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder mergeLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && lastTransitionTime_ != null
              && lastTransitionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTransitionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTransitionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTransitionTime_ = value;
          }
          onChanged();
        } else {
          lastTransitionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public Builder clearLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTransitionTimeBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getLastTransitionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
        if (lastTransitionTimeBuilder_ != null) {
          return lastTransitionTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTransitionTimeFieldBuilder() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTransitionTime(), getParentForChildren(), isClean());
          lastTransitionTime_ = null;
        }
        return lastTransitionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000010);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Unique, one-word, CamelCase reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 5;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000020);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human-readable message indicating details about last transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 6;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodCondition)
    private static final io.kubernetes.client.proto.V1.PodCondition DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodCondition();
    }

    public static io.kubernetes.client.proto.V1.PodCondition getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodCondition> PARSER =
        new com.google.protobuf.AbstractParser<PodCondition>() {
          @java.lang.Override
          public PodCondition parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodCondition(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodCondition getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodDNSConfigOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodDNSConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    java.util.List<java.lang.String> getNameserversList();
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    int getNameserversCount();
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    java.lang.String getNameservers(int index);
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    com.google.protobuf.ByteString getNameserversBytes(int index);

    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    java.util.List<java.lang.String> getSearchesList();
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    int getSearchesCount();
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    java.lang.String getSearches(int index);
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    com.google.protobuf.ByteString getSearchesBytes(int index);

    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption> getOptionsList();
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodDNSConfigOption getOptions(int index);
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    int getOptionsCount();
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>
        getOptionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder getOptionsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PodDNSConfig defines the DNS parameters of a pod in addition to
   * those generated from DNSPolicy.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodDNSConfig}
   */
  public static final class PodDNSConfig extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodDNSConfig)
      PodDNSConfigOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodDNSConfig.newBuilder() to construct.
    private PodDNSConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodDNSConfig() {
      nameservers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      searches_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      options_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodDNSConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  nameservers_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                nameservers_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  searches_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                searches_.add(bs);
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  options_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PodDNSConfigOption>();
                  mutable_bitField0_ |= 0x00000004;
                }
                options_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodDNSConfigOption.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          nameservers_ = nameservers_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          searches_ = searches_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          options_ = java.util.Collections.unmodifiableList(options_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodDNSConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodDNSConfig.class,
              io.kubernetes.client.proto.V1.PodDNSConfig.Builder.class);
    }

    public static final int NAMESERVERS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList nameservers_;
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getNameserversList() {
      return nameservers_;
    }
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    public int getNameserversCount() {
      return nameservers_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    public java.lang.String getNameservers(int index) {
      return nameservers_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of DNS name server IP addresses.
     * This will be appended to the base nameservers generated from DNSPolicy.
     * Duplicated nameservers will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string nameservers = 1;</code>
     */
    public com.google.protobuf.ByteString getNameserversBytes(int index) {
      return nameservers_.getByteString(index);
    }

    public static final int SEARCHES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList searches_;
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getSearchesList() {
      return searches_;
    }
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    public int getSearchesCount() {
      return searches_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    public java.lang.String getSearches(int index) {
      return searches_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of DNS search domains for host-name lookup.
     * This will be appended to the base search paths generated from DNSPolicy.
     * Duplicated search paths will be removed.
     * +optional
     * </pre>
     *
     * <code>repeated string searches = 2;</code>
     */
    public com.google.protobuf.ByteString getSearchesBytes(int index) {
      return searches_.getByteString(index);
    }

    public static final int OPTIONS_FIELD_NUMBER = 3;
    private java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption> options_;
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption> getOptionsList() {
      return options_;
    }
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>
        getOptionsOrBuilderList() {
      return options_;
    }
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    public int getOptionsCount() {
      return options_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodDNSConfigOption getOptions(int index) {
      return options_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of DNS resolver options.
     * This will be merged with the base options generated from DNSPolicy.
     * Duplicated entries will be removed. Resolution options given in Options
     * will override those that appear in the base DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder getOptionsOrBuilder(
        int index) {
      return options_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < nameservers_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, nameservers_.getRaw(i));
      }
      for (int i = 0; i < searches_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, searches_.getRaw(i));
      }
      for (int i = 0; i < options_.size(); i++) {
        output.writeMessage(3, options_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < nameservers_.size(); i++) {
          dataSize += computeStringSizeNoTag(nameservers_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getNameserversList().size();
      }
      {
        int dataSize = 0;
        for (int i = 0; i < searches_.size(); i++) {
          dataSize += computeStringSizeNoTag(searches_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getSearchesList().size();
      }
      for (int i = 0; i < options_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, options_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodDNSConfig)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodDNSConfig other =
          (io.kubernetes.client.proto.V1.PodDNSConfig) obj;

      boolean result = true;
      result = result && getNameserversList().equals(other.getNameserversList());
      result = result && getSearchesList().equals(other.getSearchesList());
      result = result && getOptionsList().equals(other.getOptionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getNameserversCount() > 0) {
        hash = (37 * hash) + NAMESERVERS_FIELD_NUMBER;
        hash = (53 * hash) + getNameserversList().hashCode();
      }
      if (getSearchesCount() > 0) {
        hash = (37 * hash) + SEARCHES_FIELD_NUMBER;
        hash = (53 * hash) + getSearchesList().hashCode();
      }
      if (getOptionsCount() > 0) {
        hash = (37 * hash) + OPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getOptionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodDNSConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodDNSConfig defines the DNS parameters of a pod in addition to
     * those generated from DNSPolicy.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodDNSConfig}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodDNSConfig)
        io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodDNSConfig.class,
                io.kubernetes.client.proto.V1.PodDNSConfig.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodDNSConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getOptionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        nameservers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        searches_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (optionsBuilder_ == null) {
          options_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          optionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfig getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfig build() {
        io.kubernetes.client.proto.V1.PodDNSConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfig buildPartial() {
        io.kubernetes.client.proto.V1.PodDNSConfig result =
            new io.kubernetes.client.proto.V1.PodDNSConfig(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          nameservers_ = nameservers_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.nameservers_ = nameservers_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          searches_ = searches_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.searches_ = searches_;
        if (optionsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            options_ = java.util.Collections.unmodifiableList(options_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.options_ = options_;
        } else {
          result.options_ = optionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodDNSConfig) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodDNSConfig) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodDNSConfig other) {
        if (other == io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()) return this;
        if (!other.nameservers_.isEmpty()) {
          if (nameservers_.isEmpty()) {
            nameservers_ = other.nameservers_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureNameserversIsMutable();
            nameservers_.addAll(other.nameservers_);
          }
          onChanged();
        }
        if (!other.searches_.isEmpty()) {
          if (searches_.isEmpty()) {
            searches_ = other.searches_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureSearchesIsMutable();
            searches_.addAll(other.searches_);
          }
          onChanged();
        }
        if (optionsBuilder_ == null) {
          if (!other.options_.isEmpty()) {
            if (options_.isEmpty()) {
              options_ = other.options_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureOptionsIsMutable();
              options_.addAll(other.options_);
            }
            onChanged();
          }
        } else {
          if (!other.options_.isEmpty()) {
            if (optionsBuilder_.isEmpty()) {
              optionsBuilder_.dispose();
              optionsBuilder_ = null;
              options_ = other.options_;
              bitField0_ = (bitField0_ & ~0x00000004);
              optionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getOptionsFieldBuilder()
                      : null;
            } else {
              optionsBuilder_.addAllMessages(other.options_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodDNSConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodDNSConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList nameservers_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureNameserversIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          nameservers_ = new com.google.protobuf.LazyStringArrayList(nameservers_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getNameserversList() {
        return nameservers_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public int getNameserversCount() {
        return nameservers_.size();
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public java.lang.String getNameservers(int index) {
        return nameservers_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public com.google.protobuf.ByteString getNameserversBytes(int index) {
        return nameservers_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public Builder setNameservers(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNameserversIsMutable();
        nameservers_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public Builder addNameservers(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNameserversIsMutable();
        nameservers_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public Builder addAllNameservers(java.lang.Iterable<java.lang.String> values) {
        ensureNameserversIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, nameservers_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public Builder clearNameservers() {
        nameservers_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS name server IP addresses.
       * This will be appended to the base nameservers generated from DNSPolicy.
       * Duplicated nameservers will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string nameservers = 1;</code>
       */
      public Builder addNameserversBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureNameserversIsMutable();
        nameservers_.add(value);
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList searches_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureSearchesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          searches_ = new com.google.protobuf.LazyStringArrayList(searches_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getSearchesList() {
        return searches_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public int getSearchesCount() {
        return searches_.size();
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public java.lang.String getSearches(int index) {
        return searches_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public com.google.protobuf.ByteString getSearchesBytes(int index) {
        return searches_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public Builder setSearches(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSearchesIsMutable();
        searches_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public Builder addSearches(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSearchesIsMutable();
        searches_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public Builder addAllSearches(java.lang.Iterable<java.lang.String> values) {
        ensureSearchesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, searches_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public Builder clearSearches() {
        searches_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS search domains for host-name lookup.
       * This will be appended to the base search paths generated from DNSPolicy.
       * Duplicated search paths will be removed.
       * +optional
       * </pre>
       *
       * <code>repeated string searches = 2;</code>
       */
      public Builder addSearchesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureSearchesIsMutable();
        searches_.add(value);
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption> options_ =
          java.util.Collections.emptyList();

      private void ensureOptionsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          options_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PodDNSConfigOption>(options_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodDNSConfigOption,
              io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder,
              io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>
          optionsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption> getOptionsList() {
        if (optionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(options_);
        } else {
          return optionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public int getOptionsCount() {
        if (optionsBuilder_ == null) {
          return options_.size();
        } else {
          return optionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOption getOptions(int index) {
        if (optionsBuilder_ == null) {
          return options_.get(index);
        } else {
          return optionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder setOptions(int index, io.kubernetes.client.proto.V1.PodDNSConfigOption value) {
        if (optionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOptionsIsMutable();
          options_.set(index, value);
          onChanged();
        } else {
          optionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder setOptions(
          int index, io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder builderForValue) {
        if (optionsBuilder_ == null) {
          ensureOptionsIsMutable();
          options_.set(index, builderForValue.build());
          onChanged();
        } else {
          optionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder addOptions(io.kubernetes.client.proto.V1.PodDNSConfigOption value) {
        if (optionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOptionsIsMutable();
          options_.add(value);
          onChanged();
        } else {
          optionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder addOptions(int index, io.kubernetes.client.proto.V1.PodDNSConfigOption value) {
        if (optionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureOptionsIsMutable();
          options_.add(index, value);
          onChanged();
        } else {
          optionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder addOptions(
          io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder builderForValue) {
        if (optionsBuilder_ == null) {
          ensureOptionsIsMutable();
          options_.add(builderForValue.build());
          onChanged();
        } else {
          optionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder addOptions(
          int index, io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder builderForValue) {
        if (optionsBuilder_ == null) {
          ensureOptionsIsMutable();
          options_.add(index, builderForValue.build());
          onChanged();
        } else {
          optionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder addAllOptions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodDNSConfigOption> values) {
        if (optionsBuilder_ == null) {
          ensureOptionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, options_);
          onChanged();
        } else {
          optionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder clearOptions() {
        if (optionsBuilder_ == null) {
          options_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          optionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public Builder removeOptions(int index) {
        if (optionsBuilder_ == null) {
          ensureOptionsIsMutable();
          options_.remove(index);
          onChanged();
        } else {
          optionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder getOptionsBuilder(int index) {
        return getOptionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder getOptionsOrBuilder(
          int index) {
        if (optionsBuilder_ == null) {
          return options_.get(index);
        } else {
          return optionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>
          getOptionsOrBuilderList() {
        if (optionsBuilder_ != null) {
          return optionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(options_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder addOptionsBuilder() {
        return getOptionsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodDNSConfigOption.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder addOptionsBuilder(int index) {
        return getOptionsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.PodDNSConfigOption.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of DNS resolver options.
       * This will be merged with the base options generated from DNSPolicy.
       * Duplicated entries will be removed. Resolution options given in Options
       * will override those that appear in the base DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodDNSConfigOption options = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder>
          getOptionsBuilderList() {
        return getOptionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodDNSConfigOption,
              io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder,
              io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>
          getOptionsFieldBuilder() {
        if (optionsBuilder_ == null) {
          optionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodDNSConfigOption,
                  io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder,
                  io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder>(
                  options_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          options_ = null;
        }
        return optionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodDNSConfig)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodDNSConfig)
    private static final io.kubernetes.client.proto.V1.PodDNSConfig DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodDNSConfig();
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodDNSConfig> PARSER =
        new com.google.protobuf.AbstractParser<PodDNSConfig>() {
          @java.lang.Override
          public PodDNSConfig parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodDNSConfig(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodDNSConfig> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodDNSConfig> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodDNSConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodDNSConfigOptionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodDNSConfigOption)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString getValueBytes();
  }
  /**
   *
   *
   * <pre>
   * PodDNSConfigOption defines DNS resolver options of a pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodDNSConfigOption}
   */
  public static final class PodDNSConfigOption extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodDNSConfigOption)
      PodDNSConfigOptionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodDNSConfigOption.newBuilder() to construct.
    private PodDNSConfigOption(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodDNSConfigOption() {
      name_ = "";
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodDNSConfigOption(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                value_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodDNSConfigOption_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodDNSConfigOption.class,
              io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodDNSConfigOption)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodDNSConfigOption other =
          (io.kubernetes.client.proto.V1.PodDNSConfigOption) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodDNSConfigOption prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodDNSConfigOption defines DNS resolver options of a pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodDNSConfigOption}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodDNSConfigOption)
        io.kubernetes.client.proto.V1.PodDNSConfigOptionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfigOption_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodDNSConfigOption.class,
                io.kubernetes.client.proto.V1.PodDNSConfigOption.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodDNSConfigOption.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfigOption getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodDNSConfigOption.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfigOption build() {
        io.kubernetes.client.proto.V1.PodDNSConfigOption result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodDNSConfigOption buildPartial() {
        io.kubernetes.client.proto.V1.PodDNSConfigOption result =
            new io.kubernetes.client.proto.V1.PodDNSConfigOption(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodDNSConfigOption) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodDNSConfigOption) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodDNSConfigOption other) {
        if (other == io.kubernetes.client.proto.V1.PodDNSConfigOption.getDefaultInstance())
          return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodDNSConfigOption parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PodDNSConfigOption) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodDNSConfigOption)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodDNSConfigOption)
    private static final io.kubernetes.client.proto.V1.PodDNSConfigOption DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodDNSConfigOption();
    }

    public static io.kubernetes.client.proto.V1.PodDNSConfigOption getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodDNSConfigOption> PARSER =
        new com.google.protobuf.AbstractParser<PodDNSConfigOption>() {
          @java.lang.Override
          public PodDNSConfigOption parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodDNSConfigOption(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodDNSConfigOption> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodDNSConfigOption> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodDNSConfigOption getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodExecOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodExecOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Redirect the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    boolean hasStdin();
    /**
     *
     *
     * <pre>
     * Redirect the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    boolean getStdin();

    /**
     *
     *
     * <pre>
     * Redirect the standard output stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    boolean hasStdout();
    /**
     *
     *
     * <pre>
     * Redirect the standard output stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    boolean getStdout();

    /**
     *
     *
     * <pre>
     * Redirect the standard error stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    boolean hasStderr();
    /**
     *
     *
     * <pre>
     * Redirect the standard error stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    boolean getStderr();

    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the exec call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    boolean hasTty();
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the exec call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    boolean getTty();

    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    boolean hasContainer();
    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    java.lang.String getContainer();
    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    com.google.protobuf.ByteString getContainerBytes();

    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    java.util.List<java.lang.String> getCommandList();
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    int getCommandCount();
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    java.lang.String getCommand(int index);
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    com.google.protobuf.ByteString getCommandBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * PodExecOptions is the query options to a Pod's remote exec call.
   * ---
   * TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging
   * and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodExecOptions}
   */
  public static final class PodExecOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodExecOptions)
      PodExecOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodExecOptions.newBuilder() to construct.
    private PodExecOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodExecOptions() {
      stdin_ = false;
      stdout_ = false;
      stderr_ = false;
      tty_ = false;
      container_ = "";
      command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodExecOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                stdin_ = input.readBool();
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                stdout_ = input.readBool();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                stderr_ = input.readBool();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                tty_ = input.readBool();
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                container_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  command_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000020;
                }
                command_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          command_ = command_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodExecOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodExecOptions.class,
              io.kubernetes.client.proto.V1.PodExecOptions.Builder.class);
    }

    private int bitField0_;
    public static final int STDIN_FIELD_NUMBER = 1;
    private boolean stdin_;
    /**
     *
     *
     * <pre>
     * Redirect the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    public boolean hasStdin() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Redirect the standard input stream of the pod for this call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool stdin = 1;</code>
     */
    public boolean getStdin() {
      return stdin_;
    }

    public static final int STDOUT_FIELD_NUMBER = 2;
    private boolean stdout_;
    /**
     *
     *
     * <pre>
     * Redirect the standard output stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    public boolean hasStdout() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Redirect the standard output stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stdout = 2;</code>
     */
    public boolean getStdout() {
      return stdout_;
    }

    public static final int STDERR_FIELD_NUMBER = 3;
    private boolean stderr_;
    /**
     *
     *
     * <pre>
     * Redirect the standard error stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    public boolean hasStderr() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Redirect the standard error stream of the pod for this call.
     * Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool stderr = 3;</code>
     */
    public boolean getStderr() {
      return stderr_;
    }

    public static final int TTY_FIELD_NUMBER = 4;
    private boolean tty_;
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the exec call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    public boolean hasTty() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * TTY if true indicates that a tty will be allocated for the exec call.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool tty = 4;</code>
     */
    public boolean getTty() {
      return tty_;
    }

    public static final int CONTAINER_FIELD_NUMBER = 5;
    private volatile java.lang.Object container_;
    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public boolean hasContainer() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public java.lang.String getContainer() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          container_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Container in which to execute the command.
     * Defaults to only container if there is only one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 5;</code>
     */
    public com.google.protobuf.ByteString getContainerBytes() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        container_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int COMMAND_FIELD_NUMBER = 6;
    private com.google.protobuf.LazyStringList command_;
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    public com.google.protobuf.ProtocolStringList getCommandList() {
      return command_;
    }
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    public int getCommandCount() {
      return command_.size();
    }
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    public java.lang.String getCommand(int index) {
      return command_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Command is the remote command to execute. argv array. Not executed within a shell.
     * </pre>
     *
     * <code>repeated string command = 6;</code>
     */
    public com.google.protobuf.ByteString getCommandBytes(int index) {
      return command_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, stdin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, stdout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, stderr_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, tty_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, container_);
      }
      for (int i = 0; i < command_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, command_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(1, stdin_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, stdout_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, stderr_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, tty_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, container_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < command_.size(); i++) {
          dataSize += computeStringSizeNoTag(command_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getCommandList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodExecOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodExecOptions other =
          (io.kubernetes.client.proto.V1.PodExecOptions) obj;

      boolean result = true;
      result = result && (hasStdin() == other.hasStdin());
      if (hasStdin()) {
        result = result && (getStdin() == other.getStdin());
      }
      result = result && (hasStdout() == other.hasStdout());
      if (hasStdout()) {
        result = result && (getStdout() == other.getStdout());
      }
      result = result && (hasStderr() == other.hasStderr());
      if (hasStderr()) {
        result = result && (getStderr() == other.getStderr());
      }
      result = result && (hasTty() == other.hasTty());
      if (hasTty()) {
        result = result && (getTty() == other.getTty());
      }
      result = result && (hasContainer() == other.hasContainer());
      if (hasContainer()) {
        result = result && getContainer().equals(other.getContainer());
      }
      result = result && getCommandList().equals(other.getCommandList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasStdin()) {
        hash = (37 * hash) + STDIN_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdin());
      }
      if (hasStdout()) {
        hash = (37 * hash) + STDOUT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStdout());
      }
      if (hasStderr()) {
        hash = (37 * hash) + STDERR_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getStderr());
      }
      if (hasTty()) {
        hash = (37 * hash) + TTY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getTty());
      }
      if (hasContainer()) {
        hash = (37 * hash) + CONTAINER_FIELD_NUMBER;
        hash = (53 * hash) + getContainer().hashCode();
      }
      if (getCommandCount() > 0) {
        hash = (37 * hash) + COMMAND_FIELD_NUMBER;
        hash = (53 * hash) + getCommandList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodExecOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodExecOptions is the query options to a Pod's remote exec call.
     * ---
     * TODO: This is largely identical to PodAttachOptions above, make sure they stay in sync and see about merging
     * and also when we cut V2, we should export a "StreamOptions" or somesuch that contains Stdin, Stdout, Stder and TTY
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodExecOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodExecOptions)
        io.kubernetes.client.proto.V1.PodExecOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodExecOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodExecOptions.class,
                io.kubernetes.client.proto.V1.PodExecOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodExecOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        stdin_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        stdout_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        stderr_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        tty_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        container_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodExecOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodExecOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodExecOptions build() {
        io.kubernetes.client.proto.V1.PodExecOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodExecOptions buildPartial() {
        io.kubernetes.client.proto.V1.PodExecOptions result =
            new io.kubernetes.client.proto.V1.PodExecOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.stdin_ = stdin_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.stdout_ = stdout_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.stderr_ = stderr_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.tty_ = tty_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.container_ = container_;
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          command_ = command_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000020);
        }
        result.command_ = command_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodExecOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodExecOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodExecOptions other) {
        if (other == io.kubernetes.client.proto.V1.PodExecOptions.getDefaultInstance()) return this;
        if (other.hasStdin()) {
          setStdin(other.getStdin());
        }
        if (other.hasStdout()) {
          setStdout(other.getStdout());
        }
        if (other.hasStderr()) {
          setStderr(other.getStderr());
        }
        if (other.hasTty()) {
          setTty(other.getTty());
        }
        if (other.hasContainer()) {
          bitField0_ |= 0x00000010;
          container_ = other.container_;
          onChanged();
        }
        if (!other.command_.isEmpty()) {
          if (command_.isEmpty()) {
            command_ = other.command_;
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            ensureCommandIsMutable();
            command_.addAll(other.command_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodExecOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodExecOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private boolean stdin_;
      /**
       *
       *
       * <pre>
       * Redirect the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public boolean hasStdin() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public boolean getStdin() {
        return stdin_;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public Builder setStdin(boolean value) {
        bitField0_ |= 0x00000001;
        stdin_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard input stream of the pod for this call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool stdin = 1;</code>
       */
      public Builder clearStdin() {
        bitField0_ = (bitField0_ & ~0x00000001);
        stdin_ = false;
        onChanged();
        return this;
      }

      private boolean stdout_;
      /**
       *
       *
       * <pre>
       * Redirect the standard output stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public boolean hasStdout() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard output stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public boolean getStdout() {
        return stdout_;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard output stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public Builder setStdout(boolean value) {
        bitField0_ |= 0x00000002;
        stdout_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard output stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stdout = 2;</code>
       */
      public Builder clearStdout() {
        bitField0_ = (bitField0_ & ~0x00000002);
        stdout_ = false;
        onChanged();
        return this;
      }

      private boolean stderr_;
      /**
       *
       *
       * <pre>
       * Redirect the standard error stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public boolean hasStderr() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard error stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public boolean getStderr() {
        return stderr_;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard error stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public Builder setStderr(boolean value) {
        bitField0_ |= 0x00000004;
        stderr_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Redirect the standard error stream of the pod for this call.
       * Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool stderr = 3;</code>
       */
      public Builder clearStderr() {
        bitField0_ = (bitField0_ & ~0x00000004);
        stderr_ = false;
        onChanged();
        return this;
      }

      private boolean tty_;
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the exec call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public boolean hasTty() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the exec call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public boolean getTty() {
        return tty_;
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the exec call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public Builder setTty(boolean value) {
        bitField0_ |= 0x00000008;
        tty_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * TTY if true indicates that a tty will be allocated for the exec call.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool tty = 4;</code>
       */
      public Builder clearTty() {
        bitField0_ = (bitField0_ & ~0x00000008);
        tty_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object container_ = "";
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public boolean hasContainer() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public java.lang.String getContainer() {
        java.lang.Object ref = container_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            container_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public com.google.protobuf.ByteString getContainerBytes() {
        java.lang.Object ref = container_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          container_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder setContainer(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        container_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder clearContainer() {
        bitField0_ = (bitField0_ & ~0x00000010);
        container_ = getDefaultInstance().getContainer();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container in which to execute the command.
       * Defaults to only container if there is only one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 5;</code>
       */
      public Builder setContainerBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        container_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList command_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureCommandIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          command_ = new com.google.protobuf.LazyStringArrayList(command_);
          bitField0_ |= 0x00000020;
        }
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public com.google.protobuf.ProtocolStringList getCommandList() {
        return command_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public int getCommandCount() {
        return command_.size();
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public java.lang.String getCommand(int index) {
        return command_.get(index);
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public com.google.protobuf.ByteString getCommandBytes(int index) {
        return command_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public Builder setCommand(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public Builder addCommand(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public Builder addAllCommand(java.lang.Iterable<java.lang.String> values) {
        ensureCommandIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, command_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public Builder clearCommand() {
        command_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000020);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Command is the remote command to execute. argv array. Not executed within a shell.
       * </pre>
       *
       * <code>repeated string command = 6;</code>
       */
      public Builder addCommandBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureCommandIsMutable();
        command_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodExecOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodExecOptions)
    private static final io.kubernetes.client.proto.V1.PodExecOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodExecOptions();
    }

    public static io.kubernetes.client.proto.V1.PodExecOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodExecOptions> PARSER =
        new com.google.protobuf.AbstractParser<PodExecOptions>() {
          @java.lang.Override
          public PodExecOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodExecOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodExecOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodExecOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodExecOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Pod> getItemsList();
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Pod getItems(int index);
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodOrBuilder> getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PodList is a list of Pods.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodList}
   */
  public static final class PodList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodList)
      PodListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodList.newBuilder() to construct.
    private PodList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Pod>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(io.kubernetes.client.proto.V1.Pod.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodList.class,
              io.kubernetes.client.proto.V1.PodList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Pod> items_;
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Pod> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Pod getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of pods.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodList other = (io.kubernetes.client.proto.V1.PodList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodList is a list of Pods.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodList)
        io.kubernetes.client.proto.V1.PodListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodList.class,
                io.kubernetes.client.proto.V1.PodList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodList build() {
        io.kubernetes.client.proto.V1.PodList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodList buildPartial() {
        io.kubernetes.client.proto.V1.PodList result =
            new io.kubernetes.client.proto.V1.PodList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodList) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodList other) {
        if (other == io.kubernetes.client.proto.V1.PodList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Pod> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Pod>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Pod,
              io.kubernetes.client.proto.V1.Pod.Builder,
              io.kubernetes.client.proto.V1.PodOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Pod> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Pod getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Pod value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Pod.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Pod value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Pod value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Pod.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Pod.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Pod> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Pod.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Pod.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Pod.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Pod.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Pod.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of pods.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Pod items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Pod.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Pod,
              io.kubernetes.client.proto.V1.Pod.Builder,
              io.kubernetes.client.proto.V1.PodOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Pod,
                  io.kubernetes.client.proto.V1.Pod.Builder,
                  io.kubernetes.client.proto.V1.PodOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodList)
    private static final io.kubernetes.client.proto.V1.PodList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodList();
    }

    public static io.kubernetes.client.proto.V1.PodList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodList> PARSER =
        new com.google.protobuf.AbstractParser<PodList>() {
          @java.lang.Override
          public PodList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodLogOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodLogOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    boolean hasContainer();
    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    java.lang.String getContainer();
    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    com.google.protobuf.ByteString getContainerBytes();

    /**
     *
     *
     * <pre>
     * Follow the log stream of the pod. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool follow = 2;</code>
     */
    boolean hasFollow();
    /**
     *
     *
     * <pre>
     * Follow the log stream of the pod. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool follow = 2;</code>
     */
    boolean getFollow();

    /**
     *
     *
     * <pre>
     * Return previous terminated container logs. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool previous = 3;</code>
     */
    boolean hasPrevious();
    /**
     *
     *
     * <pre>
     * Return previous terminated container logs. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool previous = 3;</code>
     */
    boolean getPrevious();

    /**
     *
     *
     * <pre>
     * A relative time in seconds before the current time from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional int64 sinceSeconds = 4;</code>
     */
    boolean hasSinceSeconds();
    /**
     *
     *
     * <pre>
     * A relative time in seconds before the current time from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional int64 sinceSeconds = 4;</code>
     */
    long getSinceSeconds();

    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    boolean hasSinceTime();
    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    io.kubernetes.client.proto.Meta.Time getSinceTime();
    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getSinceTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
     * of log output. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool timestamps = 6;</code>
     */
    boolean hasTimestamps();
    /**
     *
     *
     * <pre>
     * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
     * of log output. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool timestamps = 6;</code>
     */
    boolean getTimestamps();

    /**
     *
     *
     * <pre>
     * If set, the number of lines from the end of the logs to show. If not specified,
     * logs are shown from the creation of the container or sinceSeconds or sinceTime
     * +optional
     * </pre>
     *
     * <code>optional int64 tailLines = 7;</code>
     */
    boolean hasTailLines();
    /**
     *
     *
     * <pre>
     * If set, the number of lines from the end of the logs to show. If not specified,
     * logs are shown from the creation of the container or sinceSeconds or sinceTime
     * +optional
     * </pre>
     *
     * <code>optional int64 tailLines = 7;</code>
     */
    long getTailLines();

    /**
     *
     *
     * <pre>
     * If set, the number of bytes to read from the server before terminating the
     * log output. This may not display a complete final line of logging, and may return
     * slightly more or slightly less than the specified limit.
     * +optional
     * </pre>
     *
     * <code>optional int64 limitBytes = 8;</code>
     */
    boolean hasLimitBytes();
    /**
     *
     *
     * <pre>
     * If set, the number of bytes to read from the server before terminating the
     * log output. This may not display a complete final line of logging, and may return
     * slightly more or slightly less than the specified limit.
     * +optional
     * </pre>
     *
     * <code>optional int64 limitBytes = 8;</code>
     */
    long getLimitBytes();
  }
  /**
   *
   *
   * <pre>
   * PodLogOptions is the query options for a Pod's logs REST call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodLogOptions}
   */
  public static final class PodLogOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodLogOptions)
      PodLogOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodLogOptions.newBuilder() to construct.
    private PodLogOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodLogOptions() {
      container_ = "";
      follow_ = false;
      previous_ = false;
      sinceSeconds_ = 0L;
      timestamps_ = false;
      tailLines_ = 0L;
      limitBytes_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodLogOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                container_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                follow_ = input.readBool();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                previous_ = input.readBool();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                sinceSeconds_ = input.readInt64();
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = sinceTime_.toBuilder();
                }
                sinceTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(sinceTime_);
                  sinceTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000020;
                timestamps_ = input.readBool();
                break;
              }
            case 56:
              {
                bitField0_ |= 0x00000040;
                tailLines_ = input.readInt64();
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000080;
                limitBytes_ = input.readInt64();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodLogOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodLogOptions.class,
              io.kubernetes.client.proto.V1.PodLogOptions.Builder.class);
    }

    private int bitField0_;
    public static final int CONTAINER_FIELD_NUMBER = 1;
    private volatile java.lang.Object container_;
    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    public boolean hasContainer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    public java.lang.String getContainer() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          container_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The container for which to stream logs. Defaults to only container if there is one container in the pod.
     * +optional
     * </pre>
     *
     * <code>optional string container = 1;</code>
     */
    public com.google.protobuf.ByteString getContainerBytes() {
      java.lang.Object ref = container_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        container_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FOLLOW_FIELD_NUMBER = 2;
    private boolean follow_;
    /**
     *
     *
     * <pre>
     * Follow the log stream of the pod. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool follow = 2;</code>
     */
    public boolean hasFollow() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Follow the log stream of the pod. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool follow = 2;</code>
     */
    public boolean getFollow() {
      return follow_;
    }

    public static final int PREVIOUS_FIELD_NUMBER = 3;
    private boolean previous_;
    /**
     *
     *
     * <pre>
     * Return previous terminated container logs. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool previous = 3;</code>
     */
    public boolean hasPrevious() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Return previous terminated container logs. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool previous = 3;</code>
     */
    public boolean getPrevious() {
      return previous_;
    }

    public static final int SINCESECONDS_FIELD_NUMBER = 4;
    private long sinceSeconds_;
    /**
     *
     *
     * <pre>
     * A relative time in seconds before the current time from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional int64 sinceSeconds = 4;</code>
     */
    public boolean hasSinceSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * A relative time in seconds before the current time from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional int64 sinceSeconds = 4;</code>
     */
    public long getSinceSeconds() {
      return sinceSeconds_;
    }

    public static final int SINCETIME_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.Meta.Time sinceTime_;
    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    public boolean hasSinceTime() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getSinceTime() {
      return sinceTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : sinceTime_;
    }
    /**
     *
     *
     * <pre>
     * An RFC3339 timestamp from which to show logs. If this value
     * precedes the time a pod was started, only logs since the pod start will be returned.
     * If this value is in the future, no logs will be returned.
     * Only one of sinceSeconds or sinceTime may be specified.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getSinceTimeOrBuilder() {
      return sinceTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : sinceTime_;
    }

    public static final int TIMESTAMPS_FIELD_NUMBER = 6;
    private boolean timestamps_;
    /**
     *
     *
     * <pre>
     * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
     * of log output. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool timestamps = 6;</code>
     */
    public boolean hasTimestamps() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
     * of log output. Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool timestamps = 6;</code>
     */
    public boolean getTimestamps() {
      return timestamps_;
    }

    public static final int TAILLINES_FIELD_NUMBER = 7;
    private long tailLines_;
    /**
     *
     *
     * <pre>
     * If set, the number of lines from the end of the logs to show. If not specified,
     * logs are shown from the creation of the container or sinceSeconds or sinceTime
     * +optional
     * </pre>
     *
     * <code>optional int64 tailLines = 7;</code>
     */
    public boolean hasTailLines() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * If set, the number of lines from the end of the logs to show. If not specified,
     * logs are shown from the creation of the container or sinceSeconds or sinceTime
     * +optional
     * </pre>
     *
     * <code>optional int64 tailLines = 7;</code>
     */
    public long getTailLines() {
      return tailLines_;
    }

    public static final int LIMITBYTES_FIELD_NUMBER = 8;
    private long limitBytes_;
    /**
     *
     *
     * <pre>
     * If set, the number of bytes to read from the server before terminating the
     * log output. This may not display a complete final line of logging, and may return
     * slightly more or slightly less than the specified limit.
     * +optional
     * </pre>
     *
     * <code>optional int64 limitBytes = 8;</code>
     */
    public boolean hasLimitBytes() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * If set, the number of bytes to read from the server before terminating the
     * log output. This may not display a complete final line of logging, and may return
     * slightly more or slightly less than the specified limit.
     * +optional
     * </pre>
     *
     * <code>optional int64 limitBytes = 8;</code>
     */
    public long getLimitBytes() {
      return limitBytes_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, container_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, follow_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, previous_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, sinceSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getSinceTime());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(6, timestamps_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt64(7, tailLines_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeInt64(8, limitBytes_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, container_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, follow_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, previous_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, sinceSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSinceTime());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, timestamps_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(7, tailLines_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, limitBytes_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodLogOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodLogOptions other =
          (io.kubernetes.client.proto.V1.PodLogOptions) obj;

      boolean result = true;
      result = result && (hasContainer() == other.hasContainer());
      if (hasContainer()) {
        result = result && getContainer().equals(other.getContainer());
      }
      result = result && (hasFollow() == other.hasFollow());
      if (hasFollow()) {
        result = result && (getFollow() == other.getFollow());
      }
      result = result && (hasPrevious() == other.hasPrevious());
      if (hasPrevious()) {
        result = result && (getPrevious() == other.getPrevious());
      }
      result = result && (hasSinceSeconds() == other.hasSinceSeconds());
      if (hasSinceSeconds()) {
        result = result && (getSinceSeconds() == other.getSinceSeconds());
      }
      result = result && (hasSinceTime() == other.hasSinceTime());
      if (hasSinceTime()) {
        result = result && getSinceTime().equals(other.getSinceTime());
      }
      result = result && (hasTimestamps() == other.hasTimestamps());
      if (hasTimestamps()) {
        result = result && (getTimestamps() == other.getTimestamps());
      }
      result = result && (hasTailLines() == other.hasTailLines());
      if (hasTailLines()) {
        result = result && (getTailLines() == other.getTailLines());
      }
      result = result && (hasLimitBytes() == other.hasLimitBytes());
      if (hasLimitBytes()) {
        result = result && (getLimitBytes() == other.getLimitBytes());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasContainer()) {
        hash = (37 * hash) + CONTAINER_FIELD_NUMBER;
        hash = (53 * hash) + getContainer().hashCode();
      }
      if (hasFollow()) {
        hash = (37 * hash) + FOLLOW_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getFollow());
      }
      if (hasPrevious()) {
        hash = (37 * hash) + PREVIOUS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPrevious());
      }
      if (hasSinceSeconds()) {
        hash = (37 * hash) + SINCESECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getSinceSeconds());
      }
      if (hasSinceTime()) {
        hash = (37 * hash) + SINCETIME_FIELD_NUMBER;
        hash = (53 * hash) + getSinceTime().hashCode();
      }
      if (hasTimestamps()) {
        hash = (37 * hash) + TIMESTAMPS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getTimestamps());
      }
      if (hasTailLines()) {
        hash = (37 * hash) + TAILLINES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getTailLines());
      }
      if (hasLimitBytes()) {
        hash = (37 * hash) + LIMITBYTES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getLimitBytes());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodLogOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodLogOptions is the query options for a Pod's logs REST call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodLogOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodLogOptions)
        io.kubernetes.client.proto.V1.PodLogOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodLogOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodLogOptions.class,
                io.kubernetes.client.proto.V1.PodLogOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodLogOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSinceTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        container_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        follow_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        previous_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        sinceSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (sinceTimeBuilder_ == null) {
          sinceTime_ = null;
        } else {
          sinceTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        timestamps_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        tailLines_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000040);
        limitBytes_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodLogOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodLogOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodLogOptions build() {
        io.kubernetes.client.proto.V1.PodLogOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodLogOptions buildPartial() {
        io.kubernetes.client.proto.V1.PodLogOptions result =
            new io.kubernetes.client.proto.V1.PodLogOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.container_ = container_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.follow_ = follow_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.previous_ = previous_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sinceSeconds_ = sinceSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (sinceTimeBuilder_ == null) {
          result.sinceTime_ = sinceTime_;
        } else {
          result.sinceTime_ = sinceTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.timestamps_ = timestamps_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.tailLines_ = tailLines_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.limitBytes_ = limitBytes_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodLogOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodLogOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodLogOptions other) {
        if (other == io.kubernetes.client.proto.V1.PodLogOptions.getDefaultInstance()) return this;
        if (other.hasContainer()) {
          bitField0_ |= 0x00000001;
          container_ = other.container_;
          onChanged();
        }
        if (other.hasFollow()) {
          setFollow(other.getFollow());
        }
        if (other.hasPrevious()) {
          setPrevious(other.getPrevious());
        }
        if (other.hasSinceSeconds()) {
          setSinceSeconds(other.getSinceSeconds());
        }
        if (other.hasSinceTime()) {
          mergeSinceTime(other.getSinceTime());
        }
        if (other.hasTimestamps()) {
          setTimestamps(other.getTimestamps());
        }
        if (other.hasTailLines()) {
          setTailLines(other.getTailLines());
        }
        if (other.hasLimitBytes()) {
          setLimitBytes(other.getLimitBytes());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodLogOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodLogOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object container_ = "";
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public boolean hasContainer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public java.lang.String getContainer() {
        java.lang.Object ref = container_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            container_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public com.google.protobuf.ByteString getContainerBytes() {
        java.lang.Object ref = container_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          container_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public Builder setContainer(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        container_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public Builder clearContainer() {
        bitField0_ = (bitField0_ & ~0x00000001);
        container_ = getDefaultInstance().getContainer();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The container for which to stream logs. Defaults to only container if there is one container in the pod.
       * +optional
       * </pre>
       *
       * <code>optional string container = 1;</code>
       */
      public Builder setContainerBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        container_ = value;
        onChanged();
        return this;
      }

      private boolean follow_;
      /**
       *
       *
       * <pre>
       * Follow the log stream of the pod. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool follow = 2;</code>
       */
      public boolean hasFollow() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Follow the log stream of the pod. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool follow = 2;</code>
       */
      public boolean getFollow() {
        return follow_;
      }
      /**
       *
       *
       * <pre>
       * Follow the log stream of the pod. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool follow = 2;</code>
       */
      public Builder setFollow(boolean value) {
        bitField0_ |= 0x00000002;
        follow_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Follow the log stream of the pod. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool follow = 2;</code>
       */
      public Builder clearFollow() {
        bitField0_ = (bitField0_ & ~0x00000002);
        follow_ = false;
        onChanged();
        return this;
      }

      private boolean previous_;
      /**
       *
       *
       * <pre>
       * Return previous terminated container logs. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool previous = 3;</code>
       */
      public boolean hasPrevious() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Return previous terminated container logs. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool previous = 3;</code>
       */
      public boolean getPrevious() {
        return previous_;
      }
      /**
       *
       *
       * <pre>
       * Return previous terminated container logs. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool previous = 3;</code>
       */
      public Builder setPrevious(boolean value) {
        bitField0_ |= 0x00000004;
        previous_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Return previous terminated container logs. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool previous = 3;</code>
       */
      public Builder clearPrevious() {
        bitField0_ = (bitField0_ & ~0x00000004);
        previous_ = false;
        onChanged();
        return this;
      }

      private long sinceSeconds_;
      /**
       *
       *
       * <pre>
       * A relative time in seconds before the current time from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional int64 sinceSeconds = 4;</code>
       */
      public boolean hasSinceSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * A relative time in seconds before the current time from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional int64 sinceSeconds = 4;</code>
       */
      public long getSinceSeconds() {
        return sinceSeconds_;
      }
      /**
       *
       *
       * <pre>
       * A relative time in seconds before the current time from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional int64 sinceSeconds = 4;</code>
       */
      public Builder setSinceSeconds(long value) {
        bitField0_ |= 0x00000008;
        sinceSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A relative time in seconds before the current time from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional int64 sinceSeconds = 4;</code>
       */
      public Builder clearSinceSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sinceSeconds_ = 0L;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time sinceTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          sinceTimeBuilder_;
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public boolean hasSinceTime() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getSinceTime() {
        if (sinceTimeBuilder_ == null) {
          return sinceTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : sinceTime_;
        } else {
          return sinceTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public Builder setSinceTime(io.kubernetes.client.proto.Meta.Time value) {
        if (sinceTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sinceTime_ = value;
          onChanged();
        } else {
          sinceTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public Builder setSinceTime(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (sinceTimeBuilder_ == null) {
          sinceTime_ = builderForValue.build();
          onChanged();
        } else {
          sinceTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public Builder mergeSinceTime(io.kubernetes.client.proto.Meta.Time value) {
        if (sinceTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && sinceTime_ != null
              && sinceTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            sinceTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(sinceTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            sinceTime_ = value;
          }
          onChanged();
        } else {
          sinceTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public Builder clearSinceTime() {
        if (sinceTimeBuilder_ == null) {
          sinceTime_ = null;
          onChanged();
        } else {
          sinceTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getSinceTimeBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSinceTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getSinceTimeOrBuilder() {
        if (sinceTimeBuilder_ != null) {
          return sinceTimeBuilder_.getMessageOrBuilder();
        } else {
          return sinceTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : sinceTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * An RFC3339 timestamp from which to show logs. If this value
       * precedes the time a pod was started, only logs since the pod start will be returned.
       * If this value is in the future, no logs will be returned.
       * Only one of sinceSeconds or sinceTime may be specified.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time sinceTime = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getSinceTimeFieldBuilder() {
        if (sinceTimeBuilder_ == null) {
          sinceTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getSinceTime(), getParentForChildren(), isClean());
          sinceTime_ = null;
        }
        return sinceTimeBuilder_;
      }

      private boolean timestamps_;
      /**
       *
       *
       * <pre>
       * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
       * of log output. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool timestamps = 6;</code>
       */
      public boolean hasTimestamps() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
       * of log output. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool timestamps = 6;</code>
       */
      public boolean getTimestamps() {
        return timestamps_;
      }
      /**
       *
       *
       * <pre>
       * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
       * of log output. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool timestamps = 6;</code>
       */
      public Builder setTimestamps(boolean value) {
        bitField0_ |= 0x00000020;
        timestamps_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If true, add an RFC3339 or RFC3339Nano timestamp at the beginning of every line
       * of log output. Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool timestamps = 6;</code>
       */
      public Builder clearTimestamps() {
        bitField0_ = (bitField0_ & ~0x00000020);
        timestamps_ = false;
        onChanged();
        return this;
      }

      private long tailLines_;
      /**
       *
       *
       * <pre>
       * If set, the number of lines from the end of the logs to show. If not specified,
       * logs are shown from the creation of the container or sinceSeconds or sinceTime
       * +optional
       * </pre>
       *
       * <code>optional int64 tailLines = 7;</code>
       */
      public boolean hasTailLines() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * If set, the number of lines from the end of the logs to show. If not specified,
       * logs are shown from the creation of the container or sinceSeconds or sinceTime
       * +optional
       * </pre>
       *
       * <code>optional int64 tailLines = 7;</code>
       */
      public long getTailLines() {
        return tailLines_;
      }
      /**
       *
       *
       * <pre>
       * If set, the number of lines from the end of the logs to show. If not specified,
       * logs are shown from the creation of the container or sinceSeconds or sinceTime
       * +optional
       * </pre>
       *
       * <code>optional int64 tailLines = 7;</code>
       */
      public Builder setTailLines(long value) {
        bitField0_ |= 0x00000040;
        tailLines_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If set, the number of lines from the end of the logs to show. If not specified,
       * logs are shown from the creation of the container or sinceSeconds or sinceTime
       * +optional
       * </pre>
       *
       * <code>optional int64 tailLines = 7;</code>
       */
      public Builder clearTailLines() {
        bitField0_ = (bitField0_ & ~0x00000040);
        tailLines_ = 0L;
        onChanged();
        return this;
      }

      private long limitBytes_;
      /**
       *
       *
       * <pre>
       * If set, the number of bytes to read from the server before terminating the
       * log output. This may not display a complete final line of logging, and may return
       * slightly more or slightly less than the specified limit.
       * +optional
       * </pre>
       *
       * <code>optional int64 limitBytes = 8;</code>
       */
      public boolean hasLimitBytes() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * If set, the number of bytes to read from the server before terminating the
       * log output. This may not display a complete final line of logging, and may return
       * slightly more or slightly less than the specified limit.
       * +optional
       * </pre>
       *
       * <code>optional int64 limitBytes = 8;</code>
       */
      public long getLimitBytes() {
        return limitBytes_;
      }
      /**
       *
       *
       * <pre>
       * If set, the number of bytes to read from the server before terminating the
       * log output. This may not display a complete final line of logging, and may return
       * slightly more or slightly less than the specified limit.
       * +optional
       * </pre>
       *
       * <code>optional int64 limitBytes = 8;</code>
       */
      public Builder setLimitBytes(long value) {
        bitField0_ |= 0x00000080;
        limitBytes_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If set, the number of bytes to read from the server before terminating the
       * log output. This may not display a complete final line of logging, and may return
       * slightly more or slightly less than the specified limit.
       * +optional
       * </pre>
       *
       * <code>optional int64 limitBytes = 8;</code>
       */
      public Builder clearLimitBytes() {
        bitField0_ = (bitField0_ & ~0x00000080);
        limitBytes_ = 0L;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodLogOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodLogOptions)
    private static final io.kubernetes.client.proto.V1.PodLogOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodLogOptions();
    }

    public static io.kubernetes.client.proto.V1.PodLogOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodLogOptions> PARSER =
        new com.google.protobuf.AbstractParser<PodLogOptions>() {
          @java.lang.Override
          public PodLogOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodLogOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodLogOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodLogOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodLogOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodPortForwardOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodPortForwardOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    java.util.List<java.lang.Integer> getPortsList();
    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    int getPortsCount();
    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    int getPorts(int index);
  }
  /**
   *
   *
   * <pre>
   * PodPortForwardOptions is the query options to a Pod's port forward call
   * when using WebSockets.
   * The `port` query parameter must specify the port or
   * ports (comma separated) to forward over.
   * Port forwarding over SPDY does not use these options. It requires the port
   * to be passed in the `port` header as part of request.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodPortForwardOptions}
   */
  public static final class PodPortForwardOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodPortForwardOptions)
      PodPortForwardOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodPortForwardOptions.newBuilder() to construct.
    private PodPortForwardOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodPortForwardOptions() {
      ports_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodPortForwardOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  ports_ = new java.util.ArrayList<java.lang.Integer>();
                  mutable_bitField0_ |= 0x00000001;
                }
                ports_.add(input.readInt32());
                break;
              }
            case 10:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)
                    && input.getBytesUntilLimit() > 0) {
                  ports_ = new java.util.ArrayList<java.lang.Integer>();
                  mutable_bitField0_ |= 0x00000001;
                }
                while (input.getBytesUntilLimit() > 0) {
                  ports_.add(input.readInt32());
                }
                input.popLimit(limit);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          ports_ = java.util.Collections.unmodifiableList(ports_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodPortForwardOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodPortForwardOptions.class,
              io.kubernetes.client.proto.V1.PodPortForwardOptions.Builder.class);
    }

    public static final int PORTS_FIELD_NUMBER = 1;
    private java.util.List<java.lang.Integer> ports_;
    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    public java.util.List<java.lang.Integer> getPortsList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    public int getPortsCount() {
      return ports_.size();
    }
    /**
     *
     *
     * <pre>
     * List of ports to forward
     * Required when using WebSockets
     * +optional
     * </pre>
     *
     * <code>repeated int32 ports = 1;</code>
     */
    public int getPorts(int index) {
      return ports_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < ports_.size(); i++) {
        output.writeInt32(1, ports_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < ports_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(ports_.get(i));
        }
        size += dataSize;
        size += 1 * getPortsList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodPortForwardOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodPortForwardOptions other =
          (io.kubernetes.client.proto.V1.PodPortForwardOptions) obj;

      boolean result = true;
      result = result && getPortsList().equals(other.getPortsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPortsCount() > 0) {
        hash = (37 * hash) + PORTS_FIELD_NUMBER;
        hash = (53 * hash) + getPortsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PodPortForwardOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodPortForwardOptions is the query options to a Pod's port forward call
     * when using WebSockets.
     * The `port` query parameter must specify the port or
     * ports (comma separated) to forward over.
     * Port forwarding over SPDY does not use these options. It requires the port
     * to be passed in the `port` header as part of request.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodPortForwardOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodPortForwardOptions)
        io.kubernetes.client.proto.V1.PodPortForwardOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodPortForwardOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodPortForwardOptions.class,
                io.kubernetes.client.proto.V1.PodPortForwardOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodPortForwardOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        ports_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodPortForwardOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodPortForwardOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodPortForwardOptions build() {
        io.kubernetes.client.proto.V1.PodPortForwardOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodPortForwardOptions buildPartial() {
        io.kubernetes.client.proto.V1.PodPortForwardOptions result =
            new io.kubernetes.client.proto.V1.PodPortForwardOptions(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          ports_ = java.util.Collections.unmodifiableList(ports_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.ports_ = ports_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodPortForwardOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodPortForwardOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodPortForwardOptions other) {
        if (other == io.kubernetes.client.proto.V1.PodPortForwardOptions.getDefaultInstance())
          return this;
        if (!other.ports_.isEmpty()) {
          if (ports_.isEmpty()) {
            ports_ = other.ports_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensurePortsIsMutable();
            ports_.addAll(other.ports_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodPortForwardOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PodPortForwardOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<java.lang.Integer> ports_ = java.util.Collections.emptyList();

      private void ensurePortsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          ports_ = new java.util.ArrayList<java.lang.Integer>(ports_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public java.util.List<java.lang.Integer> getPortsList() {
        return java.util.Collections.unmodifiableList(ports_);
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public int getPortsCount() {
        return ports_.size();
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public int getPorts(int index) {
        return ports_.get(index);
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public Builder setPorts(int index, int value) {
        ensurePortsIsMutable();
        ports_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public Builder addPorts(int value) {
        ensurePortsIsMutable();
        ports_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public Builder addAllPorts(java.lang.Iterable<? extends java.lang.Integer> values) {
        ensurePortsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, ports_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ports to forward
       * Required when using WebSockets
       * +optional
       * </pre>
       *
       * <code>repeated int32 ports = 1;</code>
       */
      public Builder clearPorts() {
        ports_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodPortForwardOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodPortForwardOptions)
    private static final io.kubernetes.client.proto.V1.PodPortForwardOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodPortForwardOptions();
    }

    public static io.kubernetes.client.proto.V1.PodPortForwardOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodPortForwardOptions> PARSER =
        new com.google.protobuf.AbstractParser<PodPortForwardOptions>() {
          @java.lang.Override
          public PodPortForwardOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodPortForwardOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodPortForwardOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodPortForwardOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodPortForwardOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodProxyOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodProxyOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();
  }
  /**
   *
   *
   * <pre>
   * PodProxyOptions is the query options to a Pod's proxy call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodProxyOptions}
   */
  public static final class PodProxyOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodProxyOptions)
      PodProxyOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodProxyOptions.newBuilder() to construct.
    private PodProxyOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodProxyOptions() {
      path_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodProxyOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodProxyOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodProxyOptions.class,
              io.kubernetes.client.proto.V1.PodProxyOptions.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the URL path to use for the current proxy request to pod.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodProxyOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodProxyOptions other =
          (io.kubernetes.client.proto.V1.PodProxyOptions) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodProxyOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodProxyOptions is the query options to a Pod's proxy call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodProxyOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodProxyOptions)
        io.kubernetes.client.proto.V1.PodProxyOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodProxyOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodProxyOptions.class,
                io.kubernetes.client.proto.V1.PodProxyOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodProxyOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodProxyOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodProxyOptions build() {
        io.kubernetes.client.proto.V1.PodProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodProxyOptions buildPartial() {
        io.kubernetes.client.proto.V1.PodProxyOptions result =
            new io.kubernetes.client.proto.V1.PodProxyOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodProxyOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodProxyOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodProxyOptions other) {
        if (other == io.kubernetes.client.proto.V1.PodProxyOptions.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodProxyOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodProxyOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the URL path to use for the current proxy request to pod.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodProxyOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodProxyOptions)
    private static final io.kubernetes.client.proto.V1.PodProxyOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodProxyOptions();
    }

    public static io.kubernetes.client.proto.V1.PodProxyOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodProxyOptions> PARSER =
        new com.google.protobuf.AbstractParser<PodProxyOptions>() {
          @java.lang.Override
          public PodProxyOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodProxyOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodProxyOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodProxyOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodProxyOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodReadinessGateOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodReadinessGate)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    boolean hasConditionType();
    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    java.lang.String getConditionType();
    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    com.google.protobuf.ByteString getConditionTypeBytes();
  }
  /**
   *
   *
   * <pre>
   * PodReadinessGate contains the reference to a pod condition
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodReadinessGate}
   */
  public static final class PodReadinessGate extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodReadinessGate)
      PodReadinessGateOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodReadinessGate.newBuilder() to construct.
    private PodReadinessGate(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodReadinessGate() {
      conditionType_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodReadinessGate(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                conditionType_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodReadinessGate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodReadinessGate.class,
              io.kubernetes.client.proto.V1.PodReadinessGate.Builder.class);
    }

    private int bitField0_;
    public static final int CONDITIONTYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object conditionType_;
    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    public boolean hasConditionType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    public java.lang.String getConditionType() {
      java.lang.Object ref = conditionType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          conditionType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ConditionType refers to a condition in the pod's condition list with matching type.
     * </pre>
     *
     * <code>optional string conditionType = 1;</code>
     */
    public com.google.protobuf.ByteString getConditionTypeBytes() {
      java.lang.Object ref = conditionType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        conditionType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, conditionType_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, conditionType_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodReadinessGate)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodReadinessGate other =
          (io.kubernetes.client.proto.V1.PodReadinessGate) obj;

      boolean result = true;
      result = result && (hasConditionType() == other.hasConditionType());
      if (hasConditionType()) {
        result = result && getConditionType().equals(other.getConditionType());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasConditionType()) {
        hash = (37 * hash) + CONDITIONTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getConditionType().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodReadinessGate prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodReadinessGate contains the reference to a pod condition
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodReadinessGate}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodReadinessGate)
        io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodReadinessGate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodReadinessGate.class,
                io.kubernetes.client.proto.V1.PodReadinessGate.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodReadinessGate.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        conditionType_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodReadinessGate getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodReadinessGate.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodReadinessGate build() {
        io.kubernetes.client.proto.V1.PodReadinessGate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodReadinessGate buildPartial() {
        io.kubernetes.client.proto.V1.PodReadinessGate result =
            new io.kubernetes.client.proto.V1.PodReadinessGate(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.conditionType_ = conditionType_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodReadinessGate) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodReadinessGate) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodReadinessGate other) {
        if (other == io.kubernetes.client.proto.V1.PodReadinessGate.getDefaultInstance())
          return this;
        if (other.hasConditionType()) {
          bitField0_ |= 0x00000001;
          conditionType_ = other.conditionType_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodReadinessGate parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodReadinessGate) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object conditionType_ = "";
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public boolean hasConditionType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public java.lang.String getConditionType() {
        java.lang.Object ref = conditionType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            conditionType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public com.google.protobuf.ByteString getConditionTypeBytes() {
        java.lang.Object ref = conditionType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          conditionType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public Builder setConditionType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        conditionType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public Builder clearConditionType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        conditionType_ = getDefaultInstance().getConditionType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConditionType refers to a condition in the pod's condition list with matching type.
       * </pre>
       *
       * <code>optional string conditionType = 1;</code>
       */
      public Builder setConditionTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        conditionType_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodReadinessGate)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodReadinessGate)
    private static final io.kubernetes.client.proto.V1.PodReadinessGate DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodReadinessGate();
    }

    public static io.kubernetes.client.proto.V1.PodReadinessGate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodReadinessGate> PARSER =
        new com.google.protobuf.AbstractParser<PodReadinessGate>() {
          @java.lang.Override
          public PodReadinessGate parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodReadinessGate(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodReadinessGate> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodReadinessGate> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodReadinessGate getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodSecurityContextOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodSecurityContext)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    boolean hasSeLinuxOptions();
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions();
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder();

    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 2;</code>
     */
    boolean hasRunAsUser();
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 2;</code>
     */
    long getRunAsUser();

    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 6;</code>
     */
    boolean hasRunAsGroup();
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 6;</code>
     */
    long getRunAsGroup();

    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 3;</code>
     */
    boolean hasRunAsNonRoot();
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 3;</code>
     */
    boolean getRunAsNonRoot();

    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    java.util.List<java.lang.Long> getSupplementalGroupsList();
    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    int getSupplementalGroupsCount();
    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    long getSupplementalGroups(int index);

    /**
     *
     *
     * <pre>
     * A special supplemental group that applies to all containers in a pod.
     * Some volume types allow the Kubelet to change the ownership of that volume
     * to be owned by the pod:
     * 1. The owning GID will be the FSGroup
     * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
     * 3. The permission bits are OR'd with rw-rw----
     * If unset, the Kubelet will not modify the ownership and permissions of any volume.
     * +optional
     * </pre>
     *
     * <code>optional int64 fsGroup = 5;</code>
     */
    boolean hasFsGroup();
    /**
     *
     *
     * <pre>
     * A special supplemental group that applies to all containers in a pod.
     * Some volume types allow the Kubelet to change the ownership of that volume
     * to be owned by the pod:
     * 1. The owning GID will be the FSGroup
     * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
     * 3. The permission bits are OR'd with rw-rw----
     * If unset, the Kubelet will not modify the ownership and permissions of any volume.
     * +optional
     * </pre>
     *
     * <code>optional int64 fsGroup = 5;</code>
     */
    long getFsGroup();

    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Sysctl> getSysctlsList();
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    io.kubernetes.client.proto.V1.Sysctl getSysctls(int index);
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    int getSysctlsCount();
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.SysctlOrBuilder>
        getSysctlsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    io.kubernetes.client.proto.V1.SysctlOrBuilder getSysctlsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PodSecurityContext holds pod-level security attributes and common container settings.
   * Some fields are also present in container.securityContext.  Field values of
   * container.securityContext take precedence over field values of PodSecurityContext.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodSecurityContext}
   */
  public static final class PodSecurityContext extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodSecurityContext)
      PodSecurityContextOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodSecurityContext.newBuilder() to construct.
    private PodSecurityContext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodSecurityContext() {
      runAsUser_ = 0L;
      runAsGroup_ = 0L;
      runAsNonRoot_ = false;
      supplementalGroups_ = java.util.Collections.emptyList();
      fsGroup_ = 0L;
      sysctls_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodSecurityContext(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.SELinuxOptions.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = seLinuxOptions_.toBuilder();
                }
                seLinuxOptions_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SELinuxOptions.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(seLinuxOptions_);
                  seLinuxOptions_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                runAsUser_ = input.readInt64();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000008;
                runAsNonRoot_ = input.readBool();
                break;
              }
            case 32:
              {
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  supplementalGroups_ = new java.util.ArrayList<java.lang.Long>();
                  mutable_bitField0_ |= 0x00000010;
                }
                supplementalGroups_.add(input.readInt64());
                break;
              }
            case 34:
              {
                int length = input.readRawVarint32();
                int limit = input.pushLimit(length);
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)
                    && input.getBytesUntilLimit() > 0) {
                  supplementalGroups_ = new java.util.ArrayList<java.lang.Long>();
                  mutable_bitField0_ |= 0x00000010;
                }
                while (input.getBytesUntilLimit() > 0) {
                  supplementalGroups_.add(input.readInt64());
                }
                input.popLimit(limit);
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                fsGroup_ = input.readInt64();
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000004;
                runAsGroup_ = input.readInt64();
                break;
              }
            case 58:
              {
                if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
                  sysctls_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Sysctl>();
                  mutable_bitField0_ |= 0x00000040;
                }
                sysctls_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Sysctl.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          supplementalGroups_ = java.util.Collections.unmodifiableList(supplementalGroups_);
        }
        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
          sysctls_ = java.util.Collections.unmodifiableList(sysctls_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodSecurityContext_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodSecurityContext.class,
              io.kubernetes.client.proto.V1.PodSecurityContext.Builder.class);
    }

    private int bitField0_;
    public static final int SELINUXOPTIONS_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.SELinuxOptions seLinuxOptions_;
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    public boolean hasSeLinuxOptions() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    public io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions() {
      return seLinuxOptions_ == null
          ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
          : seLinuxOptions_;
    }
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to all containers.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in SecurityContext.  If set in
     * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
     * takes precedence for that container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
     */
    public io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder() {
      return seLinuxOptions_ == null
          ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
          : seLinuxOptions_;
    }

    public static final int RUNASUSER_FIELD_NUMBER = 2;
    private long runAsUser_;
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 2;</code>
     */
    public boolean hasRunAsUser() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 2;</code>
     */
    public long getRunAsUser() {
      return runAsUser_;
    }

    public static final int RUNASGROUP_FIELD_NUMBER = 6;
    private long runAsGroup_;
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 6;</code>
     */
    public boolean hasRunAsGroup() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence
     * for that container.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 6;</code>
     */
    public long getRunAsGroup() {
      return runAsGroup_;
    }

    public static final int RUNASNONROOT_FIELD_NUMBER = 3;
    private boolean runAsNonRoot_;
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 3;</code>
     */
    public boolean hasRunAsNonRoot() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in SecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 3;</code>
     */
    public boolean getRunAsNonRoot() {
      return runAsNonRoot_;
    }

    public static final int SUPPLEMENTALGROUPS_FIELD_NUMBER = 4;
    private java.util.List<java.lang.Long> supplementalGroups_;
    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    public java.util.List<java.lang.Long> getSupplementalGroupsList() {
      return supplementalGroups_;
    }
    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    public int getSupplementalGroupsCount() {
      return supplementalGroups_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of groups applied to the first process run in each container, in addition
     * to the container's primary GID.  If unspecified, no groups will be added to
     * any container.
     * +optional
     * </pre>
     *
     * <code>repeated int64 supplementalGroups = 4;</code>
     */
    public long getSupplementalGroups(int index) {
      return supplementalGroups_.get(index);
    }

    public static final int FSGROUP_FIELD_NUMBER = 5;
    private long fsGroup_;
    /**
     *
     *
     * <pre>
     * A special supplemental group that applies to all containers in a pod.
     * Some volume types allow the Kubelet to change the ownership of that volume
     * to be owned by the pod:
     * 1. The owning GID will be the FSGroup
     * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
     * 3. The permission bits are OR'd with rw-rw----
     * If unset, the Kubelet will not modify the ownership and permissions of any volume.
     * +optional
     * </pre>
     *
     * <code>optional int64 fsGroup = 5;</code>
     */
    public boolean hasFsGroup() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * A special supplemental group that applies to all containers in a pod.
     * Some volume types allow the Kubelet to change the ownership of that volume
     * to be owned by the pod:
     * 1. The owning GID will be the FSGroup
     * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
     * 3. The permission bits are OR'd with rw-rw----
     * If unset, the Kubelet will not modify the ownership and permissions of any volume.
     * +optional
     * </pre>
     *
     * <code>optional int64 fsGroup = 5;</code>
     */
    public long getFsGroup() {
      return fsGroup_;
    }

    public static final int SYSCTLS_FIELD_NUMBER = 7;
    private java.util.List<io.kubernetes.client.proto.V1.Sysctl> sysctls_;
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Sysctl> getSysctlsList() {
      return sysctls_;
    }
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.SysctlOrBuilder>
        getSysctlsOrBuilderList() {
      return sysctls_;
    }
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    public int getSysctlsCount() {
      return sysctls_.size();
    }
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    public io.kubernetes.client.proto.V1.Sysctl getSysctls(int index) {
      return sysctls_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
     * sysctls (by the container runtime) might fail to launch.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
     */
    public io.kubernetes.client.proto.V1.SysctlOrBuilder getSysctlsOrBuilder(int index) {
      return sysctls_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getSeLinuxOptions());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, runAsUser_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(3, runAsNonRoot_);
      }
      for (int i = 0; i < supplementalGroups_.size(); i++) {
        output.writeInt64(4, supplementalGroups_.get(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, fsGroup_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(6, runAsGroup_);
      }
      for (int i = 0; i < sysctls_.size(); i++) {
        output.writeMessage(7, sysctls_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSeLinuxOptions());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, runAsUser_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, runAsNonRoot_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < supplementalGroups_.size(); i++) {
          dataSize +=
              com.google.protobuf.CodedOutputStream.computeInt64SizeNoTag(
                  supplementalGroups_.get(i));
        }
        size += dataSize;
        size += 1 * getSupplementalGroupsList().size();
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, fsGroup_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(6, runAsGroup_);
      }
      for (int i = 0; i < sysctls_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, sysctls_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodSecurityContext)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodSecurityContext other =
          (io.kubernetes.client.proto.V1.PodSecurityContext) obj;

      boolean result = true;
      result = result && (hasSeLinuxOptions() == other.hasSeLinuxOptions());
      if (hasSeLinuxOptions()) {
        result = result && getSeLinuxOptions().equals(other.getSeLinuxOptions());
      }
      result = result && (hasRunAsUser() == other.hasRunAsUser());
      if (hasRunAsUser()) {
        result = result && (getRunAsUser() == other.getRunAsUser());
      }
      result = result && (hasRunAsGroup() == other.hasRunAsGroup());
      if (hasRunAsGroup()) {
        result = result && (getRunAsGroup() == other.getRunAsGroup());
      }
      result = result && (hasRunAsNonRoot() == other.hasRunAsNonRoot());
      if (hasRunAsNonRoot()) {
        result = result && (getRunAsNonRoot() == other.getRunAsNonRoot());
      }
      result = result && getSupplementalGroupsList().equals(other.getSupplementalGroupsList());
      result = result && (hasFsGroup() == other.hasFsGroup());
      if (hasFsGroup()) {
        result = result && (getFsGroup() == other.getFsGroup());
      }
      result = result && getSysctlsList().equals(other.getSysctlsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSeLinuxOptions()) {
        hash = (37 * hash) + SELINUXOPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getSeLinuxOptions().hashCode();
      }
      if (hasRunAsUser()) {
        hash = (37 * hash) + RUNASUSER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRunAsUser());
      }
      if (hasRunAsGroup()) {
        hash = (37 * hash) + RUNASGROUP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRunAsGroup());
      }
      if (hasRunAsNonRoot()) {
        hash = (37 * hash) + RUNASNONROOT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRunAsNonRoot());
      }
      if (getSupplementalGroupsCount() > 0) {
        hash = (37 * hash) + SUPPLEMENTALGROUPS_FIELD_NUMBER;
        hash = (53 * hash) + getSupplementalGroupsList().hashCode();
      }
      if (hasFsGroup()) {
        hash = (37 * hash) + FSGROUP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getFsGroup());
      }
      if (getSysctlsCount() > 0) {
        hash = (37 * hash) + SYSCTLS_FIELD_NUMBER;
        hash = (53 * hash) + getSysctlsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodSecurityContext prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodSecurityContext holds pod-level security attributes and common container settings.
     * Some fields are also present in container.securityContext.  Field values of
     * container.securityContext take precedence over field values of PodSecurityContext.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodSecurityContext}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodSecurityContext)
        io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodSecurityContext_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodSecurityContext.class,
                io.kubernetes.client.proto.V1.PodSecurityContext.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodSecurityContext.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSeLinuxOptionsFieldBuilder();
          getSysctlsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = null;
        } else {
          seLinuxOptionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        runAsUser_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        runAsGroup_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        runAsNonRoot_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        supplementalGroups_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        fsGroup_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        if (sysctlsBuilder_ == null) {
          sysctls_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          sysctlsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSecurityContext getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSecurityContext build() {
        io.kubernetes.client.proto.V1.PodSecurityContext result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSecurityContext buildPartial() {
        io.kubernetes.client.proto.V1.PodSecurityContext result =
            new io.kubernetes.client.proto.V1.PodSecurityContext(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (seLinuxOptionsBuilder_ == null) {
          result.seLinuxOptions_ = seLinuxOptions_;
        } else {
          result.seLinuxOptions_ = seLinuxOptionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.runAsUser_ = runAsUser_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.runAsGroup_ = runAsGroup_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.runAsNonRoot_ = runAsNonRoot_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          supplementalGroups_ = java.util.Collections.unmodifiableList(supplementalGroups_);
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.supplementalGroups_ = supplementalGroups_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.fsGroup_ = fsGroup_;
        if (sysctlsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)) {
            sysctls_ = java.util.Collections.unmodifiableList(sysctls_);
            bitField0_ = (bitField0_ & ~0x00000040);
          }
          result.sysctls_ = sysctls_;
        } else {
          result.sysctls_ = sysctlsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodSecurityContext) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodSecurityContext) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodSecurityContext other) {
        if (other == io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance())
          return this;
        if (other.hasSeLinuxOptions()) {
          mergeSeLinuxOptions(other.getSeLinuxOptions());
        }
        if (other.hasRunAsUser()) {
          setRunAsUser(other.getRunAsUser());
        }
        if (other.hasRunAsGroup()) {
          setRunAsGroup(other.getRunAsGroup());
        }
        if (other.hasRunAsNonRoot()) {
          setRunAsNonRoot(other.getRunAsNonRoot());
        }
        if (!other.supplementalGroups_.isEmpty()) {
          if (supplementalGroups_.isEmpty()) {
            supplementalGroups_ = other.supplementalGroups_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureSupplementalGroupsIsMutable();
            supplementalGroups_.addAll(other.supplementalGroups_);
          }
          onChanged();
        }
        if (other.hasFsGroup()) {
          setFsGroup(other.getFsGroup());
        }
        if (sysctlsBuilder_ == null) {
          if (!other.sysctls_.isEmpty()) {
            if (sysctls_.isEmpty()) {
              sysctls_ = other.sysctls_;
              bitField0_ = (bitField0_ & ~0x00000040);
            } else {
              ensureSysctlsIsMutable();
              sysctls_.addAll(other.sysctls_);
            }
            onChanged();
          }
        } else {
          if (!other.sysctls_.isEmpty()) {
            if (sysctlsBuilder_.isEmpty()) {
              sysctlsBuilder_.dispose();
              sysctlsBuilder_ = null;
              sysctls_ = other.sysctls_;
              bitField0_ = (bitField0_ & ~0x00000040);
              sysctlsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getSysctlsFieldBuilder()
                      : null;
            } else {
              sysctlsBuilder_.addAllMessages(other.sysctls_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodSecurityContext parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PodSecurityContext) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.SELinuxOptions seLinuxOptions_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SELinuxOptions,
              io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
              io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>
          seLinuxOptionsBuilder_;
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public boolean hasSeLinuxOptions() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions() {
        if (seLinuxOptionsBuilder_ == null) {
          return seLinuxOptions_ == null
              ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
              : seLinuxOptions_;
        } else {
          return seLinuxOptionsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public Builder setSeLinuxOptions(io.kubernetes.client.proto.V1.SELinuxOptions value) {
        if (seLinuxOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          seLinuxOptions_ = value;
          onChanged();
        } else {
          seLinuxOptionsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public Builder setSeLinuxOptions(
          io.kubernetes.client.proto.V1.SELinuxOptions.Builder builderForValue) {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = builderForValue.build();
          onChanged();
        } else {
          seLinuxOptionsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public Builder mergeSeLinuxOptions(io.kubernetes.client.proto.V1.SELinuxOptions value) {
        if (seLinuxOptionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && seLinuxOptions_ != null
              && seLinuxOptions_
                  != io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()) {
            seLinuxOptions_ =
                io.kubernetes.client.proto.V1.SELinuxOptions.newBuilder(seLinuxOptions_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            seLinuxOptions_ = value;
          }
          onChanged();
        } else {
          seLinuxOptionsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public Builder clearSeLinuxOptions() {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = null;
          onChanged();
        } else {
          seLinuxOptionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptions.Builder getSeLinuxOptionsBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSeLinuxOptionsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder() {
        if (seLinuxOptionsBuilder_ != null) {
          return seLinuxOptionsBuilder_.getMessageOrBuilder();
        } else {
          return seLinuxOptions_ == null
              ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
              : seLinuxOptions_;
        }
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to all containers.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in SecurityContext.  If set in
       * both SecurityContext and PodSecurityContext, the value specified in SecurityContext
       * takes precedence for that container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SELinuxOptions,
              io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
              io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>
          getSeLinuxOptionsFieldBuilder() {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptionsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SELinuxOptions,
                  io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
                  io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>(
                  getSeLinuxOptions(), getParentForChildren(), isClean());
          seLinuxOptions_ = null;
        }
        return seLinuxOptionsBuilder_;
      }

      private long runAsUser_;
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 2;</code>
       */
      public boolean hasRunAsUser() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 2;</code>
       */
      public long getRunAsUser() {
        return runAsUser_;
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 2;</code>
       */
      public Builder setRunAsUser(long value) {
        bitField0_ |= 0x00000002;
        runAsUser_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 2;</code>
       */
      public Builder clearRunAsUser() {
        bitField0_ = (bitField0_ & ~0x00000002);
        runAsUser_ = 0L;
        onChanged();
        return this;
      }

      private long runAsGroup_;
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 6;</code>
       */
      public boolean hasRunAsGroup() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 6;</code>
       */
      public long getRunAsGroup() {
        return runAsGroup_;
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 6;</code>
       */
      public Builder setRunAsGroup(long value) {
        bitField0_ |= 0x00000004;
        runAsGroup_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence
       * for that container.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 6;</code>
       */
      public Builder clearRunAsGroup() {
        bitField0_ = (bitField0_ & ~0x00000004);
        runAsGroup_ = 0L;
        onChanged();
        return this;
      }

      private boolean runAsNonRoot_;
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 3;</code>
       */
      public boolean hasRunAsNonRoot() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 3;</code>
       */
      public boolean getRunAsNonRoot() {
        return runAsNonRoot_;
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 3;</code>
       */
      public Builder setRunAsNonRoot(boolean value) {
        bitField0_ |= 0x00000008;
        runAsNonRoot_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in SecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 3;</code>
       */
      public Builder clearRunAsNonRoot() {
        bitField0_ = (bitField0_ & ~0x00000008);
        runAsNonRoot_ = false;
        onChanged();
        return this;
      }

      private java.util.List<java.lang.Long> supplementalGroups_ =
          java.util.Collections.emptyList();

      private void ensureSupplementalGroupsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          supplementalGroups_ = new java.util.ArrayList<java.lang.Long>(supplementalGroups_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public java.util.List<java.lang.Long> getSupplementalGroupsList() {
        return java.util.Collections.unmodifiableList(supplementalGroups_);
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public int getSupplementalGroupsCount() {
        return supplementalGroups_.size();
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public long getSupplementalGroups(int index) {
        return supplementalGroups_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public Builder setSupplementalGroups(int index, long value) {
        ensureSupplementalGroupsIsMutable();
        supplementalGroups_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public Builder addSupplementalGroups(long value) {
        ensureSupplementalGroupsIsMutable();
        supplementalGroups_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public Builder addAllSupplementalGroups(java.lang.Iterable<? extends java.lang.Long> values) {
        ensureSupplementalGroupsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, supplementalGroups_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of groups applied to the first process run in each container, in addition
       * to the container's primary GID.  If unspecified, no groups will be added to
       * any container.
       * +optional
       * </pre>
       *
       * <code>repeated int64 supplementalGroups = 4;</code>
       */
      public Builder clearSupplementalGroups() {
        supplementalGroups_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }

      private long fsGroup_;
      /**
       *
       *
       * <pre>
       * A special supplemental group that applies to all containers in a pod.
       * Some volume types allow the Kubelet to change the ownership of that volume
       * to be owned by the pod:
       * 1. The owning GID will be the FSGroup
       * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
       * 3. The permission bits are OR'd with rw-rw----
       * If unset, the Kubelet will not modify the ownership and permissions of any volume.
       * +optional
       * </pre>
       *
       * <code>optional int64 fsGroup = 5;</code>
       */
      public boolean hasFsGroup() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * A special supplemental group that applies to all containers in a pod.
       * Some volume types allow the Kubelet to change the ownership of that volume
       * to be owned by the pod:
       * 1. The owning GID will be the FSGroup
       * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
       * 3. The permission bits are OR'd with rw-rw----
       * If unset, the Kubelet will not modify the ownership and permissions of any volume.
       * +optional
       * </pre>
       *
       * <code>optional int64 fsGroup = 5;</code>
       */
      public long getFsGroup() {
        return fsGroup_;
      }
      /**
       *
       *
       * <pre>
       * A special supplemental group that applies to all containers in a pod.
       * Some volume types allow the Kubelet to change the ownership of that volume
       * to be owned by the pod:
       * 1. The owning GID will be the FSGroup
       * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
       * 3. The permission bits are OR'd with rw-rw----
       * If unset, the Kubelet will not modify the ownership and permissions of any volume.
       * +optional
       * </pre>
       *
       * <code>optional int64 fsGroup = 5;</code>
       */
      public Builder setFsGroup(long value) {
        bitField0_ |= 0x00000020;
        fsGroup_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A special supplemental group that applies to all containers in a pod.
       * Some volume types allow the Kubelet to change the ownership of that volume
       * to be owned by the pod:
       * 1. The owning GID will be the FSGroup
       * 2. The setgid bit is set (new files created in the volume will be owned by FSGroup)
       * 3. The permission bits are OR'd with rw-rw----
       * If unset, the Kubelet will not modify the ownership and permissions of any volume.
       * +optional
       * </pre>
       *
       * <code>optional int64 fsGroup = 5;</code>
       */
      public Builder clearFsGroup() {
        bitField0_ = (bitField0_ & ~0x00000020);
        fsGroup_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Sysctl> sysctls_ =
          java.util.Collections.emptyList();

      private void ensureSysctlsIsMutable() {
        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
          sysctls_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Sysctl>(sysctls_);
          bitField0_ |= 0x00000040;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Sysctl,
              io.kubernetes.client.proto.V1.Sysctl.Builder,
              io.kubernetes.client.proto.V1.SysctlOrBuilder>
          sysctlsBuilder_;

      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Sysctl> getSysctlsList() {
        if (sysctlsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sysctls_);
        } else {
          return sysctlsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public int getSysctlsCount() {
        if (sysctlsBuilder_ == null) {
          return sysctls_.size();
        } else {
          return sysctlsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public io.kubernetes.client.proto.V1.Sysctl getSysctls(int index) {
        if (sysctlsBuilder_ == null) {
          return sysctls_.get(index);
        } else {
          return sysctlsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder setSysctls(int index, io.kubernetes.client.proto.V1.Sysctl value) {
        if (sysctlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSysctlsIsMutable();
          sysctls_.set(index, value);
          onChanged();
        } else {
          sysctlsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder setSysctls(
          int index, io.kubernetes.client.proto.V1.Sysctl.Builder builderForValue) {
        if (sysctlsBuilder_ == null) {
          ensureSysctlsIsMutable();
          sysctls_.set(index, builderForValue.build());
          onChanged();
        } else {
          sysctlsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder addSysctls(io.kubernetes.client.proto.V1.Sysctl value) {
        if (sysctlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSysctlsIsMutable();
          sysctls_.add(value);
          onChanged();
        } else {
          sysctlsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder addSysctls(int index, io.kubernetes.client.proto.V1.Sysctl value) {
        if (sysctlsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSysctlsIsMutable();
          sysctls_.add(index, value);
          onChanged();
        } else {
          sysctlsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder addSysctls(io.kubernetes.client.proto.V1.Sysctl.Builder builderForValue) {
        if (sysctlsBuilder_ == null) {
          ensureSysctlsIsMutable();
          sysctls_.add(builderForValue.build());
          onChanged();
        } else {
          sysctlsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder addSysctls(
          int index, io.kubernetes.client.proto.V1.Sysctl.Builder builderForValue) {
        if (sysctlsBuilder_ == null) {
          ensureSysctlsIsMutable();
          sysctls_.add(index, builderForValue.build());
          onChanged();
        } else {
          sysctlsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder addAllSysctls(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Sysctl> values) {
        if (sysctlsBuilder_ == null) {
          ensureSysctlsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sysctls_);
          onChanged();
        } else {
          sysctlsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder clearSysctls() {
        if (sysctlsBuilder_ == null) {
          sysctls_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000040);
          onChanged();
        } else {
          sysctlsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public Builder removeSysctls(int index) {
        if (sysctlsBuilder_ == null) {
          ensureSysctlsIsMutable();
          sysctls_.remove(index);
          onChanged();
        } else {
          sysctlsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public io.kubernetes.client.proto.V1.Sysctl.Builder getSysctlsBuilder(int index) {
        return getSysctlsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SysctlOrBuilder getSysctlsOrBuilder(int index) {
        if (sysctlsBuilder_ == null) {
          return sysctls_.get(index);
        } else {
          return sysctlsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.SysctlOrBuilder>
          getSysctlsOrBuilderList() {
        if (sysctlsBuilder_ != null) {
          return sysctlsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sysctls_);
        }
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public io.kubernetes.client.proto.V1.Sysctl.Builder addSysctlsBuilder() {
        return getSysctlsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Sysctl.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public io.kubernetes.client.proto.V1.Sysctl.Builder addSysctlsBuilder(int index) {
        return getSysctlsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Sysctl.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
       * sysctls (by the container runtime) might fail to launch.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Sysctl sysctls = 7;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Sysctl.Builder> getSysctlsBuilderList() {
        return getSysctlsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Sysctl,
              io.kubernetes.client.proto.V1.Sysctl.Builder,
              io.kubernetes.client.proto.V1.SysctlOrBuilder>
          getSysctlsFieldBuilder() {
        if (sysctlsBuilder_ == null) {
          sysctlsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Sysctl,
                  io.kubernetes.client.proto.V1.Sysctl.Builder,
                  io.kubernetes.client.proto.V1.SysctlOrBuilder>(
                  sysctls_,
                  ((bitField0_ & 0x00000040) == 0x00000040),
                  getParentForChildren(),
                  isClean());
          sysctls_ = null;
        }
        return sysctlsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodSecurityContext)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodSecurityContext)
    private static final io.kubernetes.client.proto.V1.PodSecurityContext DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodSecurityContext();
    }

    public static io.kubernetes.client.proto.V1.PodSecurityContext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodSecurityContext> PARSER =
        new com.google.protobuf.AbstractParser<PodSecurityContext>() {
          @java.lang.Override
          public PodSecurityContext parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodSecurityContext(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodSecurityContext> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodSecurityContext> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodSecurityContext getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodSignatureOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodSignature)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    boolean hasPodController();
    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    io.kubernetes.client.proto.Meta.OwnerReference getPodController();
    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getPodControllerOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Describes the class of pods that should avoid this node.
   * Exactly one field should be set.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodSignature}
   */
  public static final class PodSignature extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodSignature)
      PodSignatureOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodSignature.newBuilder() to construct.
    private PodSignature(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodSignature() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodSignature(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.OwnerReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = podController_.toBuilder();
                }
                podController_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.OwnerReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(podController_);
                  podController_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodSignature_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodSignature_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodSignature.class,
              io.kubernetes.client.proto.V1.PodSignature.Builder.class);
    }

    private int bitField0_;
    public static final int PODCONTROLLER_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.OwnerReference podController_;
    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    public boolean hasPodController() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.OwnerReference getPodController() {
      return podController_ == null
          ? io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()
          : podController_;
    }
    /**
     *
     *
     * <pre>
     * Reference to controller whose pods should avoid this node.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getPodControllerOrBuilder() {
      return podController_ == null
          ? io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()
          : podController_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getPodController());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPodController());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodSignature)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodSignature other =
          (io.kubernetes.client.proto.V1.PodSignature) obj;

      boolean result = true;
      result = result && (hasPodController() == other.hasPodController());
      if (hasPodController()) {
        result = result && getPodController().equals(other.getPodController());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPodController()) {
        hash = (37 * hash) + PODCONTROLLER_FIELD_NUMBER;
        hash = (53 * hash) + getPodController().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSignature parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodSignature prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Describes the class of pods that should avoid this node.
     * Exactly one field should be set.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodSignature}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodSignature)
        io.kubernetes.client.proto.V1.PodSignatureOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodSignature_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodSignature_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodSignature.class,
                io.kubernetes.client.proto.V1.PodSignature.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodSignature.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPodControllerFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (podControllerBuilder_ == null) {
          podController_ = null;
        } else {
          podControllerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodSignature_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSignature getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSignature build() {
        io.kubernetes.client.proto.V1.PodSignature result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSignature buildPartial() {
        io.kubernetes.client.proto.V1.PodSignature result =
            new io.kubernetes.client.proto.V1.PodSignature(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (podControllerBuilder_ == null) {
          result.podController_ = podController_;
        } else {
          result.podController_ = podControllerBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodSignature) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodSignature) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodSignature other) {
        if (other == io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()) return this;
        if (other.hasPodController()) {
          mergePodController(other.getPodController());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodSignature parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodSignature) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.OwnerReference podController_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.OwnerReference,
              io.kubernetes.client.proto.Meta.OwnerReference.Builder,
              io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder>
          podControllerBuilder_;
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public boolean hasPodController() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference getPodController() {
        if (podControllerBuilder_ == null) {
          return podController_ == null
              ? io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()
              : podController_;
        } else {
          return podControllerBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public Builder setPodController(io.kubernetes.client.proto.Meta.OwnerReference value) {
        if (podControllerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          podController_ = value;
          onChanged();
        } else {
          podControllerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public Builder setPodController(
          io.kubernetes.client.proto.Meta.OwnerReference.Builder builderForValue) {
        if (podControllerBuilder_ == null) {
          podController_ = builderForValue.build();
          onChanged();
        } else {
          podControllerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public Builder mergePodController(io.kubernetes.client.proto.Meta.OwnerReference value) {
        if (podControllerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && podController_ != null
              && podController_
                  != io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()) {
            podController_ =
                io.kubernetes.client.proto.Meta.OwnerReference.newBuilder(podController_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            podController_ = value;
          }
          onChanged();
        } else {
          podControllerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public Builder clearPodController() {
        if (podControllerBuilder_ == null) {
          podController_ = null;
          onChanged();
        } else {
          podControllerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReference.Builder getPodControllerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPodControllerFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder getPodControllerOrBuilder() {
        if (podControllerBuilder_ != null) {
          return podControllerBuilder_.getMessageOrBuilder();
        } else {
          return podController_ == null
              ? io.kubernetes.client.proto.Meta.OwnerReference.getDefaultInstance()
              : podController_;
        }
      }
      /**
       *
       *
       * <pre>
       * Reference to controller whose pods should avoid this node.
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.apimachinery.pkg.apis.meta.v1.OwnerReference podController = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.OwnerReference,
              io.kubernetes.client.proto.Meta.OwnerReference.Builder,
              io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder>
          getPodControllerFieldBuilder() {
        if (podControllerBuilder_ == null) {
          podControllerBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.OwnerReference,
                  io.kubernetes.client.proto.Meta.OwnerReference.Builder,
                  io.kubernetes.client.proto.Meta.OwnerReferenceOrBuilder>(
                  getPodController(), getParentForChildren(), isClean());
          podController_ = null;
        }
        return podControllerBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodSignature)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodSignature)
    private static final io.kubernetes.client.proto.V1.PodSignature DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodSignature();
    }

    public static io.kubernetes.client.proto.V1.PodSignature getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodSignature> PARSER =
        new com.google.protobuf.AbstractParser<PodSignature>() {
          @java.lang.Override
          public PodSignature parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodSignature(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodSignature> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodSignature> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodSignature getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Volume> getVolumesList();
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    io.kubernetes.client.proto.V1.Volume getVolumes(int index);
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    int getVolumesCount();
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.VolumeOrBuilder>
        getVolumesOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    io.kubernetes.client.proto.V1.VolumeOrBuilder getVolumesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Container> getInitContainersList();
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    io.kubernetes.client.proto.V1.Container getInitContainers(int index);
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    int getInitContainersCount();
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
        getInitContainersOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    io.kubernetes.client.proto.V1.ContainerOrBuilder getInitContainersOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Container> getContainersList();
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    io.kubernetes.client.proto.V1.Container getContainers(int index);
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    int getContainersCount();
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
        getContainersOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    io.kubernetes.client.proto.V1.ContainerOrBuilder getContainersOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    boolean hasRestartPolicy();
    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    java.lang.String getRestartPolicy();
    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    com.google.protobuf.ByteString getRestartPolicyBytes();

    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
     * Value must be non-negative integer. The value zero indicates delete immediately.
     * If this value is nil, the default grace period will be used instead.
     * The grace period is the duration in seconds after the processes running in the pod are sent
     * a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process.
     * Defaults to 30 seconds.
     * +optional
     * </pre>
     *
     * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
     */
    boolean hasTerminationGracePeriodSeconds();
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
     * Value must be non-negative integer. The value zero indicates delete immediately.
     * If this value is nil, the default grace period will be used instead.
     * The grace period is the duration in seconds after the processes running in the pod are sent
     * a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process.
     * Defaults to 30 seconds.
     * +optional
     * </pre>
     *
     * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
     */
    long getTerminationGracePeriodSeconds();

    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod may be active on the node relative to
     * StartTime before the system will actively try to mark it failed and kill associated containers.
     * Value must be a positive integer.
     * +optional
     * </pre>
     *
     * <code>optional int64 activeDeadlineSeconds = 5;</code>
     */
    boolean hasActiveDeadlineSeconds();
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod may be active on the node relative to
     * StartTime before the system will actively try to mark it failed and kill associated containers.
     * Value must be a positive integer.
     * +optional
     * </pre>
     *
     * <code>optional int64 activeDeadlineSeconds = 5;</code>
     */
    long getActiveDeadlineSeconds();

    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    boolean hasDnsPolicy();
    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    java.lang.String getDnsPolicy();
    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    com.google.protobuf.ByteString getDnsPolicyBytes();

    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    int getNodeSelectorCount();
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    boolean containsNodeSelector(java.lang.String key);
    /** Use {@link #getNodeSelectorMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getNodeSelector();
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getNodeSelectorMap();
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    java.lang.String getNodeSelectorOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    java.lang.String getNodeSelectorOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    boolean hasServiceAccountName();
    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    java.lang.String getServiceAccountName();
    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    com.google.protobuf.ByteString getServiceAccountNameBytes();

    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    boolean hasServiceAccount();
    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    java.lang.String getServiceAccount();
    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    com.google.protobuf.ByteString getServiceAccountBytes();

    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 21;</code>
     */
    boolean hasAutomountServiceAccountToken();
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 21;</code>
     */
    boolean getAutomountServiceAccountToken();

    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    boolean hasNodeName();
    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    java.lang.String getNodeName();
    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    com.google.protobuf.ByteString getNodeNameBytes();

    /**
     *
     *
     * <pre>
     * Host networking requested for this pod. Use the host's network namespace.
     * If this option is set, the ports that will be used must be specified.
     * Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostNetwork = 11;</code>
     */
    boolean hasHostNetwork();
    /**
     *
     *
     * <pre>
     * Host networking requested for this pod. Use the host's network namespace.
     * If this option is set, the ports that will be used must be specified.
     * Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostNetwork = 11;</code>
     */
    boolean getHostNetwork();

    /**
     *
     *
     * <pre>
     * Use the host's pid namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostPID = 12;</code>
     */
    boolean hasHostPID();
    /**
     *
     *
     * <pre>
     * Use the host's pid namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostPID = 12;</code>
     */
    boolean getHostPID();

    /**
     *
     *
     * <pre>
     * Use the host's ipc namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostIPC = 13;</code>
     */
    boolean hasHostIPC();
    /**
     *
     *
     * <pre>
     * Use the host's ipc namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostIPC = 13;</code>
     */
    boolean getHostIPC();

    /**
     *
     *
     * <pre>
     * Share a single process namespace between all of the containers in a pod.
     * When this is set containers will be able to view and signal processes from other containers
     * in the same pod, and the first process in each container will not be assigned PID 1.
     * HostPID and ShareProcessNamespace cannot both be set.
     * Optional: Default to false.
     * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool shareProcessNamespace = 27;</code>
     */
    boolean hasShareProcessNamespace();
    /**
     *
     *
     * <pre>
     * Share a single process namespace between all of the containers in a pod.
     * When this is set containers will be able to view and signal processes from other containers
     * in the same pod, and the first process in each container will not be assigned PID 1.
     * HostPID and ShareProcessNamespace cannot both be set.
     * Optional: Default to false.
     * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool shareProcessNamespace = 27;</code>
     */
    boolean getShareProcessNamespace();

    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    boolean hasSecurityContext();
    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    io.kubernetes.client.proto.V1.PodSecurityContext getSecurityContext();
    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder getSecurityContextOrBuilder();

    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> getImagePullSecretsList();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index);
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    int getImagePullSecretsCount();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
        getImagePullSecretsOrBuilderList();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getImagePullSecretsOrBuilder(
        int index);

    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    boolean hasHostname();
    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    java.lang.String getHostname();
    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    com.google.protobuf.ByteString getHostnameBytes();

    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    boolean hasSubdomain();
    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    java.lang.String getSubdomain();
    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    com.google.protobuf.ByteString getSubdomainBytes();

    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    boolean hasAffinity();
    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    io.kubernetes.client.proto.V1.Affinity getAffinity();
    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    io.kubernetes.client.proto.V1.AffinityOrBuilder getAffinityOrBuilder();

    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    boolean hasSchedulerName();
    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    java.lang.String getSchedulerName();
    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    com.google.protobuf.ByteString getSchedulerNameBytes();

    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Toleration> getTolerationsList();
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    io.kubernetes.client.proto.V1.Toleration getTolerations(int index);
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    int getTolerationsCount();
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.TolerationOrBuilder>
        getTolerationsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    io.kubernetes.client.proto.V1.TolerationOrBuilder getTolerationsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.HostAlias> getHostAliasesList();
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    io.kubernetes.client.proto.V1.HostAlias getHostAliases(int index);
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    int getHostAliasesCount();
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.HostAliasOrBuilder>
        getHostAliasesOrBuilderList();
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    io.kubernetes.client.proto.V1.HostAliasOrBuilder getHostAliasesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    boolean hasPriorityClassName();
    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    java.lang.String getPriorityClassName();
    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    com.google.protobuf.ByteString getPriorityClassNameBytes();

    /**
     *
     *
     * <pre>
     * The priority value. Various system components use this field to find the
     * priority of the pod. When Priority Admission Controller is enabled, it
     * prevents users from setting this field. The admission controller populates
     * this field from PriorityClassName.
     * The higher the value, the higher the priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 25;</code>
     */
    boolean hasPriority();
    /**
     *
     *
     * <pre>
     * The priority value. Various system components use this field to find the
     * priority of the pod. When Priority Admission Controller is enabled, it
     * prevents users from setting this field. The admission controller populates
     * this field from PriorityClassName.
     * The higher the value, the higher the priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 25;</code>
     */
    int getPriority();

    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    boolean hasDnsConfig();
    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    io.kubernetes.client.proto.V1.PodDNSConfig getDnsConfig();
    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder getDnsConfigOrBuilder();

    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate> getReadinessGatesList();
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    io.kubernetes.client.proto.V1.PodReadinessGate getReadinessGates(int index);
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    int getReadinessGatesCount();
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>
        getReadinessGatesOrBuilderList();
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder getReadinessGatesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    boolean hasRuntimeClassName();
    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    java.lang.String getRuntimeClassName();
    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    com.google.protobuf.ByteString getRuntimeClassNameBytes();

    /**
     *
     *
     * <pre>
     * EnableServiceLinks indicates whether information about services should be injected into pod's
     * environment variables, matching the syntax of Docker links.
     * Optional: Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool enableServiceLinks = 30;</code>
     */
    boolean hasEnableServiceLinks();
    /**
     *
     *
     * <pre>
     * EnableServiceLinks indicates whether information about services should be injected into pod's
     * environment variables, matching the syntax of Docker links.
     * Optional: Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool enableServiceLinks = 30;</code>
     */
    boolean getEnableServiceLinks();
  }
  /**
   *
   *
   * <pre>
   * PodSpec is a description of a pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodSpec}
   */
  public static final class PodSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodSpec)
      PodSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodSpec.newBuilder() to construct.
    private PodSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodSpec() {
      volumes_ = java.util.Collections.emptyList();
      initContainers_ = java.util.Collections.emptyList();
      containers_ = java.util.Collections.emptyList();
      restartPolicy_ = "";
      terminationGracePeriodSeconds_ = 0L;
      activeDeadlineSeconds_ = 0L;
      dnsPolicy_ = "";
      serviceAccountName_ = "";
      serviceAccount_ = "";
      automountServiceAccountToken_ = false;
      nodeName_ = "";
      hostNetwork_ = false;
      hostPID_ = false;
      hostIPC_ = false;
      shareProcessNamespace_ = false;
      imagePullSecrets_ = java.util.Collections.emptyList();
      hostname_ = "";
      subdomain_ = "";
      schedulerName_ = "";
      tolerations_ = java.util.Collections.emptyList();
      hostAliases_ = java.util.Collections.emptyList();
      priorityClassName_ = "";
      priority_ = 0;
      readinessGates_ = java.util.Collections.emptyList();
      runtimeClassName_ = "";
      enableServiceLinks_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  volumes_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Volume>();
                  mutable_bitField0_ |= 0x00000001;
                }
                volumes_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Volume.PARSER, extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  containers_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Container>();
                  mutable_bitField0_ |= 0x00000004;
                }
                containers_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Container.PARSER, extensionRegistry));
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                restartPolicy_ = bs;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000002;
                terminationGracePeriodSeconds_ = input.readInt64();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000004;
                activeDeadlineSeconds_ = input.readInt64();
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                dnsPolicy_ = bs;
                break;
              }
            case 58:
              {
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  nodeSelector_ =
                      com.google.protobuf.MapField.newMapField(
                          NodeSelectorDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000080;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> nodeSelector__ =
                    input.readMessage(
                        NodeSelectorDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                nodeSelector_
                    .getMutableMap()
                    .put(nodeSelector__.getKey(), nodeSelector__.getValue());
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                serviceAccountName_ = bs;
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                serviceAccount_ = bs;
                break;
              }
            case 82:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                nodeName_ = bs;
                break;
              }
            case 88:
              {
                bitField0_ |= 0x00000100;
                hostNetwork_ = input.readBool();
                break;
              }
            case 96:
              {
                bitField0_ |= 0x00000200;
                hostPID_ = input.readBool();
                break;
              }
            case 104:
              {
                bitField0_ |= 0x00000400;
                hostIPC_ = input.readBool();
                break;
              }
            case 114:
              {
                io.kubernetes.client.proto.V1.PodSecurityContext.Builder subBuilder = null;
                if (((bitField0_ & 0x00001000) == 0x00001000)) {
                  subBuilder = securityContext_.toBuilder();
                }
                securityContext_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodSecurityContext.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(securityContext_);
                  securityContext_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00001000;
                break;
              }
            case 122:
              {
                if (!((mutable_bitField0_ & 0x00020000) == 0x00020000)) {
                  imagePullSecrets_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>();
                  mutable_bitField0_ |= 0x00020000;
                }
                imagePullSecrets_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry));
                break;
              }
            case 130:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00002000;
                hostname_ = bs;
                break;
              }
            case 138:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00004000;
                subdomain_ = bs;
                break;
              }
            case 146:
              {
                io.kubernetes.client.proto.V1.Affinity.Builder subBuilder = null;
                if (((bitField0_ & 0x00008000) == 0x00008000)) {
                  subBuilder = affinity_.toBuilder();
                }
                affinity_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Affinity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(affinity_);
                  affinity_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00008000;
                break;
              }
            case 154:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00010000;
                schedulerName_ = bs;
                break;
              }
            case 162:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  initContainers_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.Container>();
                  mutable_bitField0_ |= 0x00000002;
                }
                initContainers_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Container.PARSER, extensionRegistry));
                break;
              }
            case 168:
              {
                bitField0_ |= 0x00000040;
                automountServiceAccountToken_ = input.readBool();
                break;
              }
            case 178:
              {
                if (!((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
                  tolerations_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.Toleration>();
                  mutable_bitField0_ |= 0x00400000;
                }
                tolerations_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Toleration.PARSER, extensionRegistry));
                break;
              }
            case 186:
              {
                if (!((mutable_bitField0_ & 0x00800000) == 0x00800000)) {
                  hostAliases_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.HostAlias>();
                  mutable_bitField0_ |= 0x00800000;
                }
                hostAliases_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.HostAlias.PARSER, extensionRegistry));
                break;
              }
            case 194:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00020000;
                priorityClassName_ = bs;
                break;
              }
            case 200:
              {
                bitField0_ |= 0x00040000;
                priority_ = input.readInt32();
                break;
              }
            case 210:
              {
                io.kubernetes.client.proto.V1.PodDNSConfig.Builder subBuilder = null;
                if (((bitField0_ & 0x00080000) == 0x00080000)) {
                  subBuilder = dnsConfig_.toBuilder();
                }
                dnsConfig_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodDNSConfig.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(dnsConfig_);
                  dnsConfig_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00080000;
                break;
              }
            case 216:
              {
                bitField0_ |= 0x00000800;
                shareProcessNamespace_ = input.readBool();
                break;
              }
            case 226:
              {
                if (!((mutable_bitField0_ & 0x08000000) == 0x08000000)) {
                  readinessGates_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PodReadinessGate>();
                  mutable_bitField0_ |= 0x08000000;
                }
                readinessGates_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodReadinessGate.PARSER, extensionRegistry));
                break;
              }
            case 234:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00100000;
                runtimeClassName_ = bs;
                break;
              }
            case 240:
              {
                bitField0_ |= 0x00200000;
                enableServiceLinks_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          volumes_ = java.util.Collections.unmodifiableList(volumes_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          containers_ = java.util.Collections.unmodifiableList(containers_);
        }
        if (((mutable_bitField0_ & 0x00020000) == 0x00020000)) {
          imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
        }
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          initContainers_ = java.util.Collections.unmodifiableList(initContainers_);
        }
        if (((mutable_bitField0_ & 0x00400000) == 0x00400000)) {
          tolerations_ = java.util.Collections.unmodifiableList(tolerations_);
        }
        if (((mutable_bitField0_ & 0x00800000) == 0x00800000)) {
          hostAliases_ = java.util.Collections.unmodifiableList(hostAliases_);
        }
        if (((mutable_bitField0_ & 0x08000000) == 0x08000000)) {
          readinessGates_ = java.util.Collections.unmodifiableList(readinessGates_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 7:
          return internalGetNodeSelector();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodSpec.class,
              io.kubernetes.client.proto.V1.PodSpec.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMES_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.Volume> volumes_;
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Volume> getVolumesList() {
      return volumes_;
    }
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeOrBuilder>
        getVolumesOrBuilderList() {
      return volumes_;
    }
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    public int getVolumesCount() {
      return volumes_.size();
    }
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    public io.kubernetes.client.proto.V1.Volume getVolumes(int index) {
      return volumes_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of volumes that can be mounted by containers belonging to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge,retainKeys
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeOrBuilder getVolumesOrBuilder(int index) {
      return volumes_.get(index);
    }

    public static final int INITCONTAINERS_FIELD_NUMBER = 20;
    private java.util.List<io.kubernetes.client.proto.V1.Container> initContainers_;
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Container> getInitContainersList() {
      return initContainers_;
    }
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
        getInitContainersOrBuilderList() {
      return initContainers_;
    }
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    public int getInitContainersCount() {
      return initContainers_.size();
    }
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    public io.kubernetes.client.proto.V1.Container getInitContainers(int index) {
      return initContainers_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of initialization containers belonging to the pod.
     * Init containers are executed in order prior to containers being started. If any
     * init container fails, the pod is considered to have failed and is handled according
     * to its restartPolicy. The name for an init container or normal container must be
     * unique among all containers.
     * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
     * The resourceRequirements of an init container are taken into account during scheduling
     * by finding the highest request/limit for each resource type, and then using the max of
     * of that value or the sum of the normal containers. Limits are applied to init containers
     * in a similar fashion.
     * Init containers cannot currently be added or removed.
     * Cannot be updated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerOrBuilder getInitContainersOrBuilder(int index) {
      return initContainers_.get(index);
    }

    public static final int CONTAINERS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Container> containers_;
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Container> getContainersList() {
      return containers_;
    }
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
        getContainersOrBuilderList() {
      return containers_;
    }
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    public int getContainersCount() {
      return containers_.size();
    }
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Container getContainers(int index) {
      return containers_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of containers belonging to the pod.
     * Containers cannot currently be added or removed.
     * There must be at least one container in a Pod.
     * Cannot be updated.
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerOrBuilder getContainersOrBuilder(int index) {
      return containers_.get(index);
    }

    public static final int RESTARTPOLICY_FIELD_NUMBER = 3;
    private volatile java.lang.Object restartPolicy_;
    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    public boolean hasRestartPolicy() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    public java.lang.String getRestartPolicy() {
      java.lang.Object ref = restartPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          restartPolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Restart policy for all containers within the pod.
     * One of Always, OnFailure, Never.
     * Default to Always.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
     * +optional
     * </pre>
     *
     * <code>optional string restartPolicy = 3;</code>
     */
    public com.google.protobuf.ByteString getRestartPolicyBytes() {
      java.lang.Object ref = restartPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        restartPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TERMINATIONGRACEPERIODSECONDS_FIELD_NUMBER = 4;
    private long terminationGracePeriodSeconds_;
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
     * Value must be non-negative integer. The value zero indicates delete immediately.
     * If this value is nil, the default grace period will be used instead.
     * The grace period is the duration in seconds after the processes running in the pod are sent
     * a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process.
     * Defaults to 30 seconds.
     * +optional
     * </pre>
     *
     * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
     */
    public boolean hasTerminationGracePeriodSeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
     * Value must be non-negative integer. The value zero indicates delete immediately.
     * If this value is nil, the default grace period will be used instead.
     * The grace period is the duration in seconds after the processes running in the pod are sent
     * a termination signal and the time when the processes are forcibly halted with a kill signal.
     * Set this value longer than the expected cleanup time for your process.
     * Defaults to 30 seconds.
     * +optional
     * </pre>
     *
     * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
     */
    public long getTerminationGracePeriodSeconds() {
      return terminationGracePeriodSeconds_;
    }

    public static final int ACTIVEDEADLINESECONDS_FIELD_NUMBER = 5;
    private long activeDeadlineSeconds_;
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod may be active on the node relative to
     * StartTime before the system will actively try to mark it failed and kill associated containers.
     * Value must be a positive integer.
     * +optional
     * </pre>
     *
     * <code>optional int64 activeDeadlineSeconds = 5;</code>
     */
    public boolean hasActiveDeadlineSeconds() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Optional duration in seconds the pod may be active on the node relative to
     * StartTime before the system will actively try to mark it failed and kill associated containers.
     * Value must be a positive integer.
     * +optional
     * </pre>
     *
     * <code>optional int64 activeDeadlineSeconds = 5;</code>
     */
    public long getActiveDeadlineSeconds() {
      return activeDeadlineSeconds_;
    }

    public static final int DNSPOLICY_FIELD_NUMBER = 6;
    private volatile java.lang.Object dnsPolicy_;
    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    public boolean hasDnsPolicy() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    public java.lang.String getDnsPolicy() {
      java.lang.Object ref = dnsPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          dnsPolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Set DNS policy for the pod.
     * Defaults to "ClusterFirst".
     * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
     * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
     * To have DNS options set along with hostNetwork, you have to specify DNS policy
     * explicitly to 'ClusterFirstWithHostNet'.
     * +optional
     * </pre>
     *
     * <code>optional string dnsPolicy = 6;</code>
     */
    public com.google.protobuf.ByteString getDnsPolicyBytes() {
      java.lang.Object ref = dnsPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        dnsPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NODESELECTOR_FIELD_NUMBER = 7;

    private static final class NodeSelectorDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> nodeSelector_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
        internalGetNodeSelector() {
      if (nodeSelector_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            NodeSelectorDefaultEntryHolder.defaultEntry);
      }
      return nodeSelector_;
    }

    public int getNodeSelectorCount() {
      return internalGetNodeSelector().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    public boolean containsNodeSelector(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetNodeSelector().getMap().containsKey(key);
    }
    /** Use {@link #getNodeSelectorMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getNodeSelector() {
      return getNodeSelectorMap();
    }
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getNodeSelectorMap() {
      return internalGetNodeSelector().getMap();
    }
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    public java.lang.String getNodeSelectorOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetNodeSelector().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * NodeSelector is a selector which must be true for the pod to fit on a node.
     * Selector which must match a node's labels for the pod to be scheduled on that node.
     * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
     */
    public java.lang.String getNodeSelectorOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetNodeSelector().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int SERVICEACCOUNTNAME_FIELD_NUMBER = 8;
    private volatile java.lang.Object serviceAccountName_;
    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    public boolean hasServiceAccountName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    public java.lang.String getServiceAccountName() {
      java.lang.Object ref = serviceAccountName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          serviceAccountName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccountName = 8;</code>
     */
    public com.google.protobuf.ByteString getServiceAccountNameBytes() {
      java.lang.Object ref = serviceAccountName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        serviceAccountName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SERVICEACCOUNT_FIELD_NUMBER = 9;
    private volatile java.lang.Object serviceAccount_;
    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    public boolean hasServiceAccount() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    public java.lang.String getServiceAccount() {
      java.lang.Object ref = serviceAccount_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          serviceAccount_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
     * Deprecated: Use serviceAccountName instead.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional string serviceAccount = 9;</code>
     */
    public com.google.protobuf.ByteString getServiceAccountBytes() {
      java.lang.Object ref = serviceAccount_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        serviceAccount_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AUTOMOUNTSERVICEACCOUNTTOKEN_FIELD_NUMBER = 21;
    private boolean automountServiceAccountToken_;
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 21;</code>
     */
    public boolean hasAutomountServiceAccountToken() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 21;</code>
     */
    public boolean getAutomountServiceAccountToken() {
      return automountServiceAccountToken_;
    }

    public static final int NODENAME_FIELD_NUMBER = 10;
    private volatile java.lang.Object nodeName_;
    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    public boolean hasNodeName() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    public java.lang.String getNodeName() {
      java.lang.Object ref = nodeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nodeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
     * the scheduler simply schedules this pod onto that node, assuming that it fits resource
     * requirements.
     * +optional
     * </pre>
     *
     * <code>optional string nodeName = 10;</code>
     */
    public com.google.protobuf.ByteString getNodeNameBytes() {
      java.lang.Object ref = nodeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        nodeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTNETWORK_FIELD_NUMBER = 11;
    private boolean hostNetwork_;
    /**
     *
     *
     * <pre>
     * Host networking requested for this pod. Use the host's network namespace.
     * If this option is set, the ports that will be used must be specified.
     * Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostNetwork = 11;</code>
     */
    public boolean hasHostNetwork() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Host networking requested for this pod. Use the host's network namespace.
     * If this option is set, the ports that will be used must be specified.
     * Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostNetwork = 11;</code>
     */
    public boolean getHostNetwork() {
      return hostNetwork_;
    }

    public static final int HOSTPID_FIELD_NUMBER = 12;
    private boolean hostPID_;
    /**
     *
     *
     * <pre>
     * Use the host's pid namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostPID = 12;</code>
     */
    public boolean hasHostPID() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Use the host's pid namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostPID = 12;</code>
     */
    public boolean getHostPID() {
      return hostPID_;
    }

    public static final int HOSTIPC_FIELD_NUMBER = 13;
    private boolean hostIPC_;
    /**
     *
     *
     * <pre>
     * Use the host's ipc namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostIPC = 13;</code>
     */
    public boolean hasHostIPC() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     *
     *
     * <pre>
     * Use the host's ipc namespace.
     * Optional: Default to false.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool hostIPC = 13;</code>
     */
    public boolean getHostIPC() {
      return hostIPC_;
    }

    public static final int SHAREPROCESSNAMESPACE_FIELD_NUMBER = 27;
    private boolean shareProcessNamespace_;
    /**
     *
     *
     * <pre>
     * Share a single process namespace between all of the containers in a pod.
     * When this is set containers will be able to view and signal processes from other containers
     * in the same pod, and the first process in each container will not be assigned PID 1.
     * HostPID and ShareProcessNamespace cannot both be set.
     * Optional: Default to false.
     * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool shareProcessNamespace = 27;</code>
     */
    public boolean hasShareProcessNamespace() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     *
     *
     * <pre>
     * Share a single process namespace between all of the containers in a pod.
     * When this is set containers will be able to view and signal processes from other containers
     * in the same pod, and the first process in each container will not be assigned PID 1.
     * HostPID and ShareProcessNamespace cannot both be set.
     * Optional: Default to false.
     * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>optional bool shareProcessNamespace = 27;</code>
     */
    public boolean getShareProcessNamespace() {
      return shareProcessNamespace_;
    }

    public static final int SECURITYCONTEXT_FIELD_NUMBER = 14;
    private io.kubernetes.client.proto.V1.PodSecurityContext securityContext_;
    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    public boolean hasSecurityContext() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    public io.kubernetes.client.proto.V1.PodSecurityContext getSecurityContext() {
      return securityContext_ == null
          ? io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance()
          : securityContext_;
    }
    /**
     *
     *
     * <pre>
     * SecurityContext holds pod-level security attributes and common container settings.
     * Optional: Defaults to empty.  See type description for default values of each field.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
     */
    public io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder getSecurityContextOrBuilder() {
      return securityContext_ == null
          ? io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance()
          : securityContext_;
    }

    public static final int IMAGEPULLSECRETS_FIELD_NUMBER = 15;
    private java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> imagePullSecrets_;
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference>
        getImagePullSecretsList() {
      return imagePullSecrets_;
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
        getImagePullSecretsOrBuilderList() {
      return imagePullSecrets_;
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    public int getImagePullSecretsCount() {
      return imagePullSecrets_.size();
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index) {
      return imagePullSecrets_.get(index);
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
     * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
     * in the case of docker, only DockerConfig type secrets are honored.
     * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getImagePullSecretsOrBuilder(
        int index) {
      return imagePullSecrets_.get(index);
    }

    public static final int HOSTNAME_FIELD_NUMBER = 16;
    private volatile java.lang.Object hostname_;
    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Specifies the hostname of the Pod
     * If not specified, the pod's hostname will be set to a system-defined value.
     * +optional
     * </pre>
     *
     * <code>optional string hostname = 16;</code>
     */
    public com.google.protobuf.ByteString getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SUBDOMAIN_FIELD_NUMBER = 17;
    private volatile java.lang.Object subdomain_;
    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    public boolean hasSubdomain() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    public java.lang.String getSubdomain() {
      java.lang.Object ref = subdomain_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          subdomain_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
     * If not specified, the pod will not have a domainname at all.
     * +optional
     * </pre>
     *
     * <code>optional string subdomain = 17;</code>
     */
    public com.google.protobuf.ByteString getSubdomainBytes() {
      java.lang.Object ref = subdomain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        subdomain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int AFFINITY_FIELD_NUMBER = 18;
    private io.kubernetes.client.proto.V1.Affinity affinity_;
    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    public boolean hasAffinity() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    public io.kubernetes.client.proto.V1.Affinity getAffinity() {
      return affinity_ == null
          ? io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()
          : affinity_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's scheduling constraints
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
     */
    public io.kubernetes.client.proto.V1.AffinityOrBuilder getAffinityOrBuilder() {
      return affinity_ == null
          ? io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()
          : affinity_;
    }

    public static final int SCHEDULERNAME_FIELD_NUMBER = 19;
    private volatile java.lang.Object schedulerName_;
    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    public boolean hasSchedulerName() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    public java.lang.String getSchedulerName() {
      java.lang.Object ref = schedulerName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          schedulerName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod will be dispatched by specified scheduler.
     * If not specified, the pod will be dispatched by default scheduler.
     * +optional
     * </pre>
     *
     * <code>optional string schedulerName = 19;</code>
     */
    public com.google.protobuf.ByteString getSchedulerNameBytes() {
      java.lang.Object ref = schedulerName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        schedulerName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOLERATIONS_FIELD_NUMBER = 22;
    private java.util.List<io.kubernetes.client.proto.V1.Toleration> tolerations_;
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Toleration> getTolerationsList() {
      return tolerations_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.TolerationOrBuilder>
        getTolerationsOrBuilderList() {
      return tolerations_;
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    public int getTolerationsCount() {
      return tolerations_.size();
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    public io.kubernetes.client.proto.V1.Toleration getTolerations(int index) {
      return tolerations_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If specified, the pod's tolerations.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
     */
    public io.kubernetes.client.proto.V1.TolerationOrBuilder getTolerationsOrBuilder(int index) {
      return tolerations_.get(index);
    }

    public static final int HOSTALIASES_FIELD_NUMBER = 23;
    private java.util.List<io.kubernetes.client.proto.V1.HostAlias> hostAliases_;
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.HostAlias> getHostAliasesList() {
      return hostAliases_;
    }
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.HostAliasOrBuilder>
        getHostAliasesOrBuilderList() {
      return hostAliases_;
    }
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    public int getHostAliasesCount() {
      return hostAliases_.size();
    }
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    public io.kubernetes.client.proto.V1.HostAlias getHostAliases(int index) {
      return hostAliases_.get(index);
    }
    /**
     *
     *
     * <pre>
     * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
     * file if specified. This is only valid for non-hostNetwork pods.
     * +optional
     * +patchMergeKey=ip
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
     */
    public io.kubernetes.client.proto.V1.HostAliasOrBuilder getHostAliasesOrBuilder(int index) {
      return hostAliases_.get(index);
    }

    public static final int PRIORITYCLASSNAME_FIELD_NUMBER = 24;
    private volatile java.lang.Object priorityClassName_;
    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    public boolean hasPriorityClassName() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    public java.lang.String getPriorityClassName() {
      java.lang.Object ref = priorityClassName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          priorityClassName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * If specified, indicates the pod's priority. "system-node-critical" and
     * "system-cluster-critical" are two special keywords which indicate the
     * highest priorities with the former being the highest priority. Any other
     * name must be defined by creating a PriorityClass object with that name.
     * If not specified, the pod priority will be default or zero if there is no
     * default.
     * +optional
     * </pre>
     *
     * <code>optional string priorityClassName = 24;</code>
     */
    public com.google.protobuf.ByteString getPriorityClassNameBytes() {
      java.lang.Object ref = priorityClassName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        priorityClassName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PRIORITY_FIELD_NUMBER = 25;
    private int priority_;
    /**
     *
     *
     * <pre>
     * The priority value. Various system components use this field to find the
     * priority of the pod. When Priority Admission Controller is enabled, it
     * prevents users from setting this field. The admission controller populates
     * this field from PriorityClassName.
     * The higher the value, the higher the priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 25;</code>
     */
    public boolean hasPriority() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     *
     *
     * <pre>
     * The priority value. Various system components use this field to find the
     * priority of the pod. When Priority Admission Controller is enabled, it
     * prevents users from setting this field. The admission controller populates
     * this field from PriorityClassName.
     * The higher the value, the higher the priority.
     * +optional
     * </pre>
     *
     * <code>optional int32 priority = 25;</code>
     */
    public int getPriority() {
      return priority_;
    }

    public static final int DNSCONFIG_FIELD_NUMBER = 26;
    private io.kubernetes.client.proto.V1.PodDNSConfig dnsConfig_;
    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    public boolean hasDnsConfig() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    public io.kubernetes.client.proto.V1.PodDNSConfig getDnsConfig() {
      return dnsConfig_ == null
          ? io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()
          : dnsConfig_;
    }
    /**
     *
     *
     * <pre>
     * Specifies the DNS parameters of a pod.
     * Parameters specified here will be merged to the generated DNS
     * configuration based on DNSPolicy.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
     */
    public io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder getDnsConfigOrBuilder() {
      return dnsConfig_ == null
          ? io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()
          : dnsConfig_;
    }

    public static final int READINESSGATES_FIELD_NUMBER = 28;
    private java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate> readinessGates_;
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate> getReadinessGatesList() {
      return readinessGates_;
    }
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>
        getReadinessGatesOrBuilderList() {
      return readinessGates_;
    }
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    public int getReadinessGatesCount() {
      return readinessGates_.size();
    }
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    public io.kubernetes.client.proto.V1.PodReadinessGate getReadinessGates(int index) {
      return readinessGates_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If specified, all readiness gates will be evaluated for pod readiness.
     * A pod is ready when all its containers are ready AND
     * all conditions specified in the readiness gates have status equal to "True"
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
     */
    public io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder getReadinessGatesOrBuilder(
        int index) {
      return readinessGates_.get(index);
    }

    public static final int RUNTIMECLASSNAME_FIELD_NUMBER = 29;
    private volatile java.lang.Object runtimeClassName_;
    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    public boolean hasRuntimeClassName() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    public java.lang.String getRuntimeClassName() {
      java.lang.Object ref = runtimeClassName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          runtimeClassName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
     * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
     * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
     * empty definition that uses the default runtime handler.
     * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
     * This is an alpha feature and may change in the future.
     * +optional
     * </pre>
     *
     * <code>optional string runtimeClassName = 29;</code>
     */
    public com.google.protobuf.ByteString getRuntimeClassNameBytes() {
      java.lang.Object ref = runtimeClassName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        runtimeClassName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ENABLESERVICELINKS_FIELD_NUMBER = 30;
    private boolean enableServiceLinks_;
    /**
     *
     *
     * <pre>
     * EnableServiceLinks indicates whether information about services should be injected into pod's
     * environment variables, matching the syntax of Docker links.
     * Optional: Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool enableServiceLinks = 30;</code>
     */
    public boolean hasEnableServiceLinks() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     *
     *
     * <pre>
     * EnableServiceLinks indicates whether information about services should be injected into pod's
     * environment variables, matching the syntax of Docker links.
     * Optional: Defaults to true.
     * +optional
     * </pre>
     *
     * <code>optional bool enableServiceLinks = 30;</code>
     */
    public boolean getEnableServiceLinks() {
      return enableServiceLinks_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < volumes_.size(); i++) {
        output.writeMessage(1, volumes_.get(i));
      }
      for (int i = 0; i < containers_.size(); i++) {
        output.writeMessage(2, containers_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, restartPolicy_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(4, terminationGracePeriodSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt64(5, activeDeadlineSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, dnsPolicy_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetNodeSelector(), NodeSelectorDefaultEntryHolder.defaultEntry, 7);
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, serviceAccountName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, serviceAccount_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, nodeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(11, hostNetwork_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(12, hostPID_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBool(13, hostIPC_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(14, getSecurityContext());
      }
      for (int i = 0; i < imagePullSecrets_.size(); i++) {
        output.writeMessage(15, imagePullSecrets_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 16, hostname_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 17, subdomain_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(18, getAffinity());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 19, schedulerName_);
      }
      for (int i = 0; i < initContainers_.size(); i++) {
        output.writeMessage(20, initContainers_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(21, automountServiceAccountToken_);
      }
      for (int i = 0; i < tolerations_.size(); i++) {
        output.writeMessage(22, tolerations_.get(i));
      }
      for (int i = 0; i < hostAliases_.size(); i++) {
        output.writeMessage(23, hostAliases_.get(i));
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 24, priorityClassName_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeInt32(25, priority_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(26, getDnsConfig());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBool(27, shareProcessNamespace_);
      }
      for (int i = 0; i < readinessGates_.size(); i++) {
        output.writeMessage(28, readinessGates_.get(i));
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 29, runtimeClassName_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeBool(30, enableServiceLinks_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < volumes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, volumes_.get(i));
      }
      for (int i = 0; i < containers_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, containers_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, restartPolicy_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeInt64Size(
                4, terminationGracePeriodSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, activeDeadlineSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, dnsPolicy_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetNodeSelector().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> nodeSelector__ =
            NodeSelectorDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, nodeSelector__);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, serviceAccountName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, serviceAccount_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, nodeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(11, hostNetwork_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(12, hostPID_);
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(13, hostIPC_);
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getSecurityContext());
      }
      for (int i = 0; i < imagePullSecrets_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(15, imagePullSecrets_.get(i));
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(16, hostname_);
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(17, subdomain_);
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getAffinity());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(19, schedulerName_);
      }
      for (int i = 0; i < initContainers_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(20, initContainers_.get(i));
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeBoolSize(
                21, automountServiceAccountToken_);
      }
      for (int i = 0; i < tolerations_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, tolerations_.get(i));
      }
      for (int i = 0; i < hostAliases_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(23, hostAliases_.get(i));
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(24, priorityClassName_);
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(25, priority_);
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, getDnsConfig());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(27, shareProcessNamespace_);
      }
      for (int i = 0; i < readinessGates_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(28, readinessGates_.get(i));
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(29, runtimeClassName_);
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(30, enableServiceLinks_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodSpec other = (io.kubernetes.client.proto.V1.PodSpec) obj;

      boolean result = true;
      result = result && getVolumesList().equals(other.getVolumesList());
      result = result && getInitContainersList().equals(other.getInitContainersList());
      result = result && getContainersList().equals(other.getContainersList());
      result = result && (hasRestartPolicy() == other.hasRestartPolicy());
      if (hasRestartPolicy()) {
        result = result && getRestartPolicy().equals(other.getRestartPolicy());
      }
      result =
          result
              && (hasTerminationGracePeriodSeconds() == other.hasTerminationGracePeriodSeconds());
      if (hasTerminationGracePeriodSeconds()) {
        result =
            result
                && (getTerminationGracePeriodSeconds() == other.getTerminationGracePeriodSeconds());
      }
      result = result && (hasActiveDeadlineSeconds() == other.hasActiveDeadlineSeconds());
      if (hasActiveDeadlineSeconds()) {
        result = result && (getActiveDeadlineSeconds() == other.getActiveDeadlineSeconds());
      }
      result = result && (hasDnsPolicy() == other.hasDnsPolicy());
      if (hasDnsPolicy()) {
        result = result && getDnsPolicy().equals(other.getDnsPolicy());
      }
      result = result && internalGetNodeSelector().equals(other.internalGetNodeSelector());
      result = result && (hasServiceAccountName() == other.hasServiceAccountName());
      if (hasServiceAccountName()) {
        result = result && getServiceAccountName().equals(other.getServiceAccountName());
      }
      result = result && (hasServiceAccount() == other.hasServiceAccount());
      if (hasServiceAccount()) {
        result = result && getServiceAccount().equals(other.getServiceAccount());
      }
      result =
          result && (hasAutomountServiceAccountToken() == other.hasAutomountServiceAccountToken());
      if (hasAutomountServiceAccountToken()) {
        result =
            result
                && (getAutomountServiceAccountToken() == other.getAutomountServiceAccountToken());
      }
      result = result && (hasNodeName() == other.hasNodeName());
      if (hasNodeName()) {
        result = result && getNodeName().equals(other.getNodeName());
      }
      result = result && (hasHostNetwork() == other.hasHostNetwork());
      if (hasHostNetwork()) {
        result = result && (getHostNetwork() == other.getHostNetwork());
      }
      result = result && (hasHostPID() == other.hasHostPID());
      if (hasHostPID()) {
        result = result && (getHostPID() == other.getHostPID());
      }
      result = result && (hasHostIPC() == other.hasHostIPC());
      if (hasHostIPC()) {
        result = result && (getHostIPC() == other.getHostIPC());
      }
      result = result && (hasShareProcessNamespace() == other.hasShareProcessNamespace());
      if (hasShareProcessNamespace()) {
        result = result && (getShareProcessNamespace() == other.getShareProcessNamespace());
      }
      result = result && (hasSecurityContext() == other.hasSecurityContext());
      if (hasSecurityContext()) {
        result = result && getSecurityContext().equals(other.getSecurityContext());
      }
      result = result && getImagePullSecretsList().equals(other.getImagePullSecretsList());
      result = result && (hasHostname() == other.hasHostname());
      if (hasHostname()) {
        result = result && getHostname().equals(other.getHostname());
      }
      result = result && (hasSubdomain() == other.hasSubdomain());
      if (hasSubdomain()) {
        result = result && getSubdomain().equals(other.getSubdomain());
      }
      result = result && (hasAffinity() == other.hasAffinity());
      if (hasAffinity()) {
        result = result && getAffinity().equals(other.getAffinity());
      }
      result = result && (hasSchedulerName() == other.hasSchedulerName());
      if (hasSchedulerName()) {
        result = result && getSchedulerName().equals(other.getSchedulerName());
      }
      result = result && getTolerationsList().equals(other.getTolerationsList());
      result = result && getHostAliasesList().equals(other.getHostAliasesList());
      result = result && (hasPriorityClassName() == other.hasPriorityClassName());
      if (hasPriorityClassName()) {
        result = result && getPriorityClassName().equals(other.getPriorityClassName());
      }
      result = result && (hasPriority() == other.hasPriority());
      if (hasPriority()) {
        result = result && (getPriority() == other.getPriority());
      }
      result = result && (hasDnsConfig() == other.hasDnsConfig());
      if (hasDnsConfig()) {
        result = result && getDnsConfig().equals(other.getDnsConfig());
      }
      result = result && getReadinessGatesList().equals(other.getReadinessGatesList());
      result = result && (hasRuntimeClassName() == other.hasRuntimeClassName());
      if (hasRuntimeClassName()) {
        result = result && getRuntimeClassName().equals(other.getRuntimeClassName());
      }
      result = result && (hasEnableServiceLinks() == other.hasEnableServiceLinks());
      if (hasEnableServiceLinks()) {
        result = result && (getEnableServiceLinks() == other.getEnableServiceLinks());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getVolumesCount() > 0) {
        hash = (37 * hash) + VOLUMES_FIELD_NUMBER;
        hash = (53 * hash) + getVolumesList().hashCode();
      }
      if (getInitContainersCount() > 0) {
        hash = (37 * hash) + INITCONTAINERS_FIELD_NUMBER;
        hash = (53 * hash) + getInitContainersList().hashCode();
      }
      if (getContainersCount() > 0) {
        hash = (37 * hash) + CONTAINERS_FIELD_NUMBER;
        hash = (53 * hash) + getContainersList().hashCode();
      }
      if (hasRestartPolicy()) {
        hash = (37 * hash) + RESTARTPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getRestartPolicy().hashCode();
      }
      if (hasTerminationGracePeriodSeconds()) {
        hash = (37 * hash) + TERMINATIONGRACEPERIODSECONDS_FIELD_NUMBER;
        hash =
            (53 * hash) + com.google.protobuf.Internal.hashLong(getTerminationGracePeriodSeconds());
      }
      if (hasActiveDeadlineSeconds()) {
        hash = (37 * hash) + ACTIVEDEADLINESECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getActiveDeadlineSeconds());
      }
      if (hasDnsPolicy()) {
        hash = (37 * hash) + DNSPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getDnsPolicy().hashCode();
      }
      if (!internalGetNodeSelector().getMap().isEmpty()) {
        hash = (37 * hash) + NODESELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + internalGetNodeSelector().hashCode();
      }
      if (hasServiceAccountName()) {
        hash = (37 * hash) + SERVICEACCOUNTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getServiceAccountName().hashCode();
      }
      if (hasServiceAccount()) {
        hash = (37 * hash) + SERVICEACCOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getServiceAccount().hashCode();
      }
      if (hasAutomountServiceAccountToken()) {
        hash = (37 * hash) + AUTOMOUNTSERVICEACCOUNTTOKEN_FIELD_NUMBER;
        hash =
            (53 * hash)
                + com.google.protobuf.Internal.hashBoolean(getAutomountServiceAccountToken());
      }
      if (hasNodeName()) {
        hash = (37 * hash) + NODENAME_FIELD_NUMBER;
        hash = (53 * hash) + getNodeName().hashCode();
      }
      if (hasHostNetwork()) {
        hash = (37 * hash) + HOSTNETWORK_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getHostNetwork());
      }
      if (hasHostPID()) {
        hash = (37 * hash) + HOSTPID_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getHostPID());
      }
      if (hasHostIPC()) {
        hash = (37 * hash) + HOSTIPC_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getHostIPC());
      }
      if (hasShareProcessNamespace()) {
        hash = (37 * hash) + SHAREPROCESSNAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getShareProcessNamespace());
      }
      if (hasSecurityContext()) {
        hash = (37 * hash) + SECURITYCONTEXT_FIELD_NUMBER;
        hash = (53 * hash) + getSecurityContext().hashCode();
      }
      if (getImagePullSecretsCount() > 0) {
        hash = (37 * hash) + IMAGEPULLSECRETS_FIELD_NUMBER;
        hash = (53 * hash) + getImagePullSecretsList().hashCode();
      }
      if (hasHostname()) {
        hash = (37 * hash) + HOSTNAME_FIELD_NUMBER;
        hash = (53 * hash) + getHostname().hashCode();
      }
      if (hasSubdomain()) {
        hash = (37 * hash) + SUBDOMAIN_FIELD_NUMBER;
        hash = (53 * hash) + getSubdomain().hashCode();
      }
      if (hasAffinity()) {
        hash = (37 * hash) + AFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getAffinity().hashCode();
      }
      if (hasSchedulerName()) {
        hash = (37 * hash) + SCHEDULERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSchedulerName().hashCode();
      }
      if (getTolerationsCount() > 0) {
        hash = (37 * hash) + TOLERATIONS_FIELD_NUMBER;
        hash = (53 * hash) + getTolerationsList().hashCode();
      }
      if (getHostAliasesCount() > 0) {
        hash = (37 * hash) + HOSTALIASES_FIELD_NUMBER;
        hash = (53 * hash) + getHostAliasesList().hashCode();
      }
      if (hasPriorityClassName()) {
        hash = (37 * hash) + PRIORITYCLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getPriorityClassName().hashCode();
      }
      if (hasPriority()) {
        hash = (37 * hash) + PRIORITY_FIELD_NUMBER;
        hash = (53 * hash) + getPriority();
      }
      if (hasDnsConfig()) {
        hash = (37 * hash) + DNSCONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getDnsConfig().hashCode();
      }
      if (getReadinessGatesCount() > 0) {
        hash = (37 * hash) + READINESSGATES_FIELD_NUMBER;
        hash = (53 * hash) + getReadinessGatesList().hashCode();
      }
      if (hasRuntimeClassName()) {
        hash = (37 * hash) + RUNTIMECLASSNAME_FIELD_NUMBER;
        hash = (53 * hash) + getRuntimeClassName().hashCode();
      }
      if (hasEnableServiceLinks()) {
        hash = (37 * hash) + ENABLESERVICELINKS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getEnableServiceLinks());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodSpec is a description of a pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodSpec)
        io.kubernetes.client.proto.V1.PodSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 7:
            return internalGetNodeSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 7:
            return internalGetMutableNodeSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodSpec.class,
                io.kubernetes.client.proto.V1.PodSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getVolumesFieldBuilder();
          getInitContainersFieldBuilder();
          getContainersFieldBuilder();
          getSecurityContextFieldBuilder();
          getImagePullSecretsFieldBuilder();
          getAffinityFieldBuilder();
          getTolerationsFieldBuilder();
          getHostAliasesFieldBuilder();
          getDnsConfigFieldBuilder();
          getReadinessGatesFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (volumesBuilder_ == null) {
          volumes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          volumesBuilder_.clear();
        }
        if (initContainersBuilder_ == null) {
          initContainers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          initContainersBuilder_.clear();
        }
        if (containersBuilder_ == null) {
          containers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          containersBuilder_.clear();
        }
        restartPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        terminationGracePeriodSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        activeDeadlineSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000020);
        dnsPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        internalGetMutableNodeSelector().clear();
        serviceAccountName_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        serviceAccount_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        automountServiceAccountToken_ = false;
        bitField0_ = (bitField0_ & ~0x00000400);
        nodeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        hostNetwork_ = false;
        bitField0_ = (bitField0_ & ~0x00001000);
        hostPID_ = false;
        bitField0_ = (bitField0_ & ~0x00002000);
        hostIPC_ = false;
        bitField0_ = (bitField0_ & ~0x00004000);
        shareProcessNamespace_ = false;
        bitField0_ = (bitField0_ & ~0x00008000);
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00020000);
        } else {
          imagePullSecretsBuilder_.clear();
        }
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00040000);
        subdomain_ = "";
        bitField0_ = (bitField0_ & ~0x00080000);
        if (affinityBuilder_ == null) {
          affinity_ = null;
        } else {
          affinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        schedulerName_ = "";
        bitField0_ = (bitField0_ & ~0x00200000);
        if (tolerationsBuilder_ == null) {
          tolerations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00400000);
        } else {
          tolerationsBuilder_.clear();
        }
        if (hostAliasesBuilder_ == null) {
          hostAliases_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00800000);
        } else {
          hostAliasesBuilder_.clear();
        }
        priorityClassName_ = "";
        bitField0_ = (bitField0_ & ~0x01000000);
        priority_ = 0;
        bitField0_ = (bitField0_ & ~0x02000000);
        if (dnsConfigBuilder_ == null) {
          dnsConfig_ = null;
        } else {
          dnsConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        if (readinessGatesBuilder_ == null) {
          readinessGates_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x08000000);
        } else {
          readinessGatesBuilder_.clear();
        }
        runtimeClassName_ = "";
        bitField0_ = (bitField0_ & ~0x10000000);
        enableServiceLinks_ = false;
        bitField0_ = (bitField0_ & ~0x20000000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSpec build() {
        io.kubernetes.client.proto.V1.PodSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodSpec buildPartial() {
        io.kubernetes.client.proto.V1.PodSpec result =
            new io.kubernetes.client.proto.V1.PodSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (volumesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            volumes_ = java.util.Collections.unmodifiableList(volumes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.volumes_ = volumes_;
        } else {
          result.volumes_ = volumesBuilder_.build();
        }
        if (initContainersBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            initContainers_ = java.util.Collections.unmodifiableList(initContainers_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.initContainers_ = initContainers_;
        } else {
          result.initContainers_ = initContainersBuilder_.build();
        }
        if (containersBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            containers_ = java.util.Collections.unmodifiableList(containers_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.containers_ = containers_;
        } else {
          result.containers_ = containersBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000001;
        }
        result.restartPolicy_ = restartPolicy_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000002;
        }
        result.terminationGracePeriodSeconds_ = terminationGracePeriodSeconds_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000004;
        }
        result.activeDeadlineSeconds_ = activeDeadlineSeconds_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000008;
        }
        result.dnsPolicy_ = dnsPolicy_;
        result.nodeSelector_ = internalGetNodeSelector();
        result.nodeSelector_.makeImmutable();
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000010;
        }
        result.serviceAccountName_ = serviceAccountName_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000020;
        }
        result.serviceAccount_ = serviceAccount_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000040;
        }
        result.automountServiceAccountToken_ = automountServiceAccountToken_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000080;
        }
        result.nodeName_ = nodeName_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000100;
        }
        result.hostNetwork_ = hostNetwork_;
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00000200;
        }
        result.hostPID_ = hostPID_;
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00000400;
        }
        result.hostIPC_ = hostIPC_;
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00000800;
        }
        result.shareProcessNamespace_ = shareProcessNamespace_;
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (securityContextBuilder_ == null) {
          result.securityContext_ = securityContext_;
        } else {
          result.securityContext_ = securityContextBuilder_.build();
        }
        if (imagePullSecretsBuilder_ == null) {
          if (((bitField0_ & 0x00020000) == 0x00020000)) {
            imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
            bitField0_ = (bitField0_ & ~0x00020000);
          }
          result.imagePullSecrets_ = imagePullSecrets_;
        } else {
          result.imagePullSecrets_ = imagePullSecretsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00002000;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00004000;
        }
        result.subdomain_ = subdomain_;
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00008000;
        }
        if (affinityBuilder_ == null) {
          result.affinity_ = affinity_;
        } else {
          result.affinity_ = affinityBuilder_.build();
        }
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00010000;
        }
        result.schedulerName_ = schedulerName_;
        if (tolerationsBuilder_ == null) {
          if (((bitField0_ & 0x00400000) == 0x00400000)) {
            tolerations_ = java.util.Collections.unmodifiableList(tolerations_);
            bitField0_ = (bitField0_ & ~0x00400000);
          }
          result.tolerations_ = tolerations_;
        } else {
          result.tolerations_ = tolerationsBuilder_.build();
        }
        if (hostAliasesBuilder_ == null) {
          if (((bitField0_ & 0x00800000) == 0x00800000)) {
            hostAliases_ = java.util.Collections.unmodifiableList(hostAliases_);
            bitField0_ = (bitField0_ & ~0x00800000);
          }
          result.hostAliases_ = hostAliases_;
        } else {
          result.hostAliases_ = hostAliasesBuilder_.build();
        }
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x00020000;
        }
        result.priorityClassName_ = priorityClassName_;
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x00040000;
        }
        result.priority_ = priority_;
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x00080000;
        }
        if (dnsConfigBuilder_ == null) {
          result.dnsConfig_ = dnsConfig_;
        } else {
          result.dnsConfig_ = dnsConfigBuilder_.build();
        }
        if (readinessGatesBuilder_ == null) {
          if (((bitField0_ & 0x08000000) == 0x08000000)) {
            readinessGates_ = java.util.Collections.unmodifiableList(readinessGates_);
            bitField0_ = (bitField0_ & ~0x08000000);
          }
          result.readinessGates_ = readinessGates_;
        } else {
          result.readinessGates_ = readinessGatesBuilder_.build();
        }
        if (((from_bitField0_ & 0x10000000) == 0x10000000)) {
          to_bitField0_ |= 0x00100000;
        }
        result.runtimeClassName_ = runtimeClassName_;
        if (((from_bitField0_ & 0x20000000) == 0x20000000)) {
          to_bitField0_ |= 0x00200000;
        }
        result.enableServiceLinks_ = enableServiceLinks_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodSpec other) {
        if (other == io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance()) return this;
        if (volumesBuilder_ == null) {
          if (!other.volumes_.isEmpty()) {
            if (volumes_.isEmpty()) {
              volumes_ = other.volumes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureVolumesIsMutable();
              volumes_.addAll(other.volumes_);
            }
            onChanged();
          }
        } else {
          if (!other.volumes_.isEmpty()) {
            if (volumesBuilder_.isEmpty()) {
              volumesBuilder_.dispose();
              volumesBuilder_ = null;
              volumes_ = other.volumes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              volumesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getVolumesFieldBuilder()
                      : null;
            } else {
              volumesBuilder_.addAllMessages(other.volumes_);
            }
          }
        }
        if (initContainersBuilder_ == null) {
          if (!other.initContainers_.isEmpty()) {
            if (initContainers_.isEmpty()) {
              initContainers_ = other.initContainers_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureInitContainersIsMutable();
              initContainers_.addAll(other.initContainers_);
            }
            onChanged();
          }
        } else {
          if (!other.initContainers_.isEmpty()) {
            if (initContainersBuilder_.isEmpty()) {
              initContainersBuilder_.dispose();
              initContainersBuilder_ = null;
              initContainers_ = other.initContainers_;
              bitField0_ = (bitField0_ & ~0x00000002);
              initContainersBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getInitContainersFieldBuilder()
                      : null;
            } else {
              initContainersBuilder_.addAllMessages(other.initContainers_);
            }
          }
        }
        if (containersBuilder_ == null) {
          if (!other.containers_.isEmpty()) {
            if (containers_.isEmpty()) {
              containers_ = other.containers_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureContainersIsMutable();
              containers_.addAll(other.containers_);
            }
            onChanged();
          }
        } else {
          if (!other.containers_.isEmpty()) {
            if (containersBuilder_.isEmpty()) {
              containersBuilder_.dispose();
              containersBuilder_ = null;
              containers_ = other.containers_;
              bitField0_ = (bitField0_ & ~0x00000004);
              containersBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getContainersFieldBuilder()
                      : null;
            } else {
              containersBuilder_.addAllMessages(other.containers_);
            }
          }
        }
        if (other.hasRestartPolicy()) {
          bitField0_ |= 0x00000008;
          restartPolicy_ = other.restartPolicy_;
          onChanged();
        }
        if (other.hasTerminationGracePeriodSeconds()) {
          setTerminationGracePeriodSeconds(other.getTerminationGracePeriodSeconds());
        }
        if (other.hasActiveDeadlineSeconds()) {
          setActiveDeadlineSeconds(other.getActiveDeadlineSeconds());
        }
        if (other.hasDnsPolicy()) {
          bitField0_ |= 0x00000040;
          dnsPolicy_ = other.dnsPolicy_;
          onChanged();
        }
        internalGetMutableNodeSelector().mergeFrom(other.internalGetNodeSelector());
        if (other.hasServiceAccountName()) {
          bitField0_ |= 0x00000100;
          serviceAccountName_ = other.serviceAccountName_;
          onChanged();
        }
        if (other.hasServiceAccount()) {
          bitField0_ |= 0x00000200;
          serviceAccount_ = other.serviceAccount_;
          onChanged();
        }
        if (other.hasAutomountServiceAccountToken()) {
          setAutomountServiceAccountToken(other.getAutomountServiceAccountToken());
        }
        if (other.hasNodeName()) {
          bitField0_ |= 0x00000800;
          nodeName_ = other.nodeName_;
          onChanged();
        }
        if (other.hasHostNetwork()) {
          setHostNetwork(other.getHostNetwork());
        }
        if (other.hasHostPID()) {
          setHostPID(other.getHostPID());
        }
        if (other.hasHostIPC()) {
          setHostIPC(other.getHostIPC());
        }
        if (other.hasShareProcessNamespace()) {
          setShareProcessNamespace(other.getShareProcessNamespace());
        }
        if (other.hasSecurityContext()) {
          mergeSecurityContext(other.getSecurityContext());
        }
        if (imagePullSecretsBuilder_ == null) {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecrets_.isEmpty()) {
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00020000);
            } else {
              ensureImagePullSecretsIsMutable();
              imagePullSecrets_.addAll(other.imagePullSecrets_);
            }
            onChanged();
          }
        } else {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecretsBuilder_.isEmpty()) {
              imagePullSecretsBuilder_.dispose();
              imagePullSecretsBuilder_ = null;
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00020000);
              imagePullSecretsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getImagePullSecretsFieldBuilder()
                      : null;
            } else {
              imagePullSecretsBuilder_.addAllMessages(other.imagePullSecrets_);
            }
          }
        }
        if (other.hasHostname()) {
          bitField0_ |= 0x00040000;
          hostname_ = other.hostname_;
          onChanged();
        }
        if (other.hasSubdomain()) {
          bitField0_ |= 0x00080000;
          subdomain_ = other.subdomain_;
          onChanged();
        }
        if (other.hasAffinity()) {
          mergeAffinity(other.getAffinity());
        }
        if (other.hasSchedulerName()) {
          bitField0_ |= 0x00200000;
          schedulerName_ = other.schedulerName_;
          onChanged();
        }
        if (tolerationsBuilder_ == null) {
          if (!other.tolerations_.isEmpty()) {
            if (tolerations_.isEmpty()) {
              tolerations_ = other.tolerations_;
              bitField0_ = (bitField0_ & ~0x00400000);
            } else {
              ensureTolerationsIsMutable();
              tolerations_.addAll(other.tolerations_);
            }
            onChanged();
          }
        } else {
          if (!other.tolerations_.isEmpty()) {
            if (tolerationsBuilder_.isEmpty()) {
              tolerationsBuilder_.dispose();
              tolerationsBuilder_ = null;
              tolerations_ = other.tolerations_;
              bitField0_ = (bitField0_ & ~0x00400000);
              tolerationsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getTolerationsFieldBuilder()
                      : null;
            } else {
              tolerationsBuilder_.addAllMessages(other.tolerations_);
            }
          }
        }
        if (hostAliasesBuilder_ == null) {
          if (!other.hostAliases_.isEmpty()) {
            if (hostAliases_.isEmpty()) {
              hostAliases_ = other.hostAliases_;
              bitField0_ = (bitField0_ & ~0x00800000);
            } else {
              ensureHostAliasesIsMutable();
              hostAliases_.addAll(other.hostAliases_);
            }
            onChanged();
          }
        } else {
          if (!other.hostAliases_.isEmpty()) {
            if (hostAliasesBuilder_.isEmpty()) {
              hostAliasesBuilder_.dispose();
              hostAliasesBuilder_ = null;
              hostAliases_ = other.hostAliases_;
              bitField0_ = (bitField0_ & ~0x00800000);
              hostAliasesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getHostAliasesFieldBuilder()
                      : null;
            } else {
              hostAliasesBuilder_.addAllMessages(other.hostAliases_);
            }
          }
        }
        if (other.hasPriorityClassName()) {
          bitField0_ |= 0x01000000;
          priorityClassName_ = other.priorityClassName_;
          onChanged();
        }
        if (other.hasPriority()) {
          setPriority(other.getPriority());
        }
        if (other.hasDnsConfig()) {
          mergeDnsConfig(other.getDnsConfig());
        }
        if (readinessGatesBuilder_ == null) {
          if (!other.readinessGates_.isEmpty()) {
            if (readinessGates_.isEmpty()) {
              readinessGates_ = other.readinessGates_;
              bitField0_ = (bitField0_ & ~0x08000000);
            } else {
              ensureReadinessGatesIsMutable();
              readinessGates_.addAll(other.readinessGates_);
            }
            onChanged();
          }
        } else {
          if (!other.readinessGates_.isEmpty()) {
            if (readinessGatesBuilder_.isEmpty()) {
              readinessGatesBuilder_.dispose();
              readinessGatesBuilder_ = null;
              readinessGates_ = other.readinessGates_;
              bitField0_ = (bitField0_ & ~0x08000000);
              readinessGatesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getReadinessGatesFieldBuilder()
                      : null;
            } else {
              readinessGatesBuilder_.addAllMessages(other.readinessGates_);
            }
          }
        }
        if (other.hasRuntimeClassName()) {
          bitField0_ |= 0x10000000;
          runtimeClassName_ = other.runtimeClassName_;
          onChanged();
        }
        if (other.hasEnableServiceLinks()) {
          setEnableServiceLinks(other.getEnableServiceLinks());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.Volume> volumes_ =
          java.util.Collections.emptyList();

      private void ensureVolumesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          volumes_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Volume>(volumes_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Volume,
              io.kubernetes.client.proto.V1.Volume.Builder,
              io.kubernetes.client.proto.V1.VolumeOrBuilder>
          volumesBuilder_;

      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Volume> getVolumesList() {
        if (volumesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(volumes_);
        } else {
          return volumesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public int getVolumesCount() {
        if (volumesBuilder_ == null) {
          return volumes_.size();
        } else {
          return volumesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Volume getVolumes(int index) {
        if (volumesBuilder_ == null) {
          return volumes_.get(index);
        } else {
          return volumesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder setVolumes(int index, io.kubernetes.client.proto.V1.Volume value) {
        if (volumesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesIsMutable();
          volumes_.set(index, value);
          onChanged();
        } else {
          volumesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder setVolumes(
          int index, io.kubernetes.client.proto.V1.Volume.Builder builderForValue) {
        if (volumesBuilder_ == null) {
          ensureVolumesIsMutable();
          volumes_.set(index, builderForValue.build());
          onChanged();
        } else {
          volumesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder addVolumes(io.kubernetes.client.proto.V1.Volume value) {
        if (volumesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesIsMutable();
          volumes_.add(value);
          onChanged();
        } else {
          volumesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder addVolumes(int index, io.kubernetes.client.proto.V1.Volume value) {
        if (volumesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureVolumesIsMutable();
          volumes_.add(index, value);
          onChanged();
        } else {
          volumesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder addVolumes(io.kubernetes.client.proto.V1.Volume.Builder builderForValue) {
        if (volumesBuilder_ == null) {
          ensureVolumesIsMutable();
          volumes_.add(builderForValue.build());
          onChanged();
        } else {
          volumesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder addVolumes(
          int index, io.kubernetes.client.proto.V1.Volume.Builder builderForValue) {
        if (volumesBuilder_ == null) {
          ensureVolumesIsMutable();
          volumes_.add(index, builderForValue.build());
          onChanged();
        } else {
          volumesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder addAllVolumes(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Volume> values) {
        if (volumesBuilder_ == null) {
          ensureVolumesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, volumes_);
          onChanged();
        } else {
          volumesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder clearVolumes() {
        if (volumesBuilder_ == null) {
          volumes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          volumesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public Builder removeVolumes(int index) {
        if (volumesBuilder_ == null) {
          ensureVolumesIsMutable();
          volumes_.remove(index);
          onChanged();
        } else {
          volumesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Volume.Builder getVolumesBuilder(int index) {
        return getVolumesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeOrBuilder getVolumesOrBuilder(int index) {
        if (volumesBuilder_ == null) {
          return volumes_.get(index);
        } else {
          return volumesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeOrBuilder>
          getVolumesOrBuilderList() {
        if (volumesBuilder_ != null) {
          return volumesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(volumes_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Volume.Builder addVolumesBuilder() {
        return getVolumesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Volume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Volume.Builder addVolumesBuilder(int index) {
        return getVolumesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Volume.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of volumes that can be mounted by containers belonging to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge,retainKeys
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Volume volumes = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Volume.Builder> getVolumesBuilderList() {
        return getVolumesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Volume,
              io.kubernetes.client.proto.V1.Volume.Builder,
              io.kubernetes.client.proto.V1.VolumeOrBuilder>
          getVolumesFieldBuilder() {
        if (volumesBuilder_ == null) {
          volumesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Volume,
                  io.kubernetes.client.proto.V1.Volume.Builder,
                  io.kubernetes.client.proto.V1.VolumeOrBuilder>(
                  volumes_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          volumes_ = null;
        }
        return volumesBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Container> initContainers_ =
          java.util.Collections.emptyList();

      private void ensureInitContainersIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          initContainers_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.Container>(initContainers_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Container,
              io.kubernetes.client.proto.V1.Container.Builder,
              io.kubernetes.client.proto.V1.ContainerOrBuilder>
          initContainersBuilder_;

      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Container> getInitContainersList() {
        if (initContainersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(initContainers_);
        } else {
          return initContainersBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public int getInitContainersCount() {
        if (initContainersBuilder_ == null) {
          return initContainers_.size();
        } else {
          return initContainersBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public io.kubernetes.client.proto.V1.Container getInitContainers(int index) {
        if (initContainersBuilder_ == null) {
          return initContainers_.get(index);
        } else {
          return initContainersBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder setInitContainers(int index, io.kubernetes.client.proto.V1.Container value) {
        if (initContainersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainersIsMutable();
          initContainers_.set(index, value);
          onChanged();
        } else {
          initContainersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder setInitContainers(
          int index, io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (initContainersBuilder_ == null) {
          ensureInitContainersIsMutable();
          initContainers_.set(index, builderForValue.build());
          onChanged();
        } else {
          initContainersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder addInitContainers(io.kubernetes.client.proto.V1.Container value) {
        if (initContainersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainersIsMutable();
          initContainers_.add(value);
          onChanged();
        } else {
          initContainersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder addInitContainers(int index, io.kubernetes.client.proto.V1.Container value) {
        if (initContainersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainersIsMutable();
          initContainers_.add(index, value);
          onChanged();
        } else {
          initContainersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder addInitContainers(
          io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (initContainersBuilder_ == null) {
          ensureInitContainersIsMutable();
          initContainers_.add(builderForValue.build());
          onChanged();
        } else {
          initContainersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder addInitContainers(
          int index, io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (initContainersBuilder_ == null) {
          ensureInitContainersIsMutable();
          initContainers_.add(index, builderForValue.build());
          onChanged();
        } else {
          initContainersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder addAllInitContainers(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Container> values) {
        if (initContainersBuilder_ == null) {
          ensureInitContainersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, initContainers_);
          onChanged();
        } else {
          initContainersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder clearInitContainers() {
        if (initContainersBuilder_ == null) {
          initContainers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          initContainersBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public Builder removeInitContainers(int index) {
        if (initContainersBuilder_ == null) {
          ensureInitContainersIsMutable();
          initContainers_.remove(index);
          onChanged();
        } else {
          initContainersBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder getInitContainersBuilder(int index) {
        return getInitContainersFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerOrBuilder getInitContainersOrBuilder(
          int index) {
        if (initContainersBuilder_ == null) {
          return initContainers_.get(index);
        } else {
          return initContainersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
          getInitContainersOrBuilderList() {
        if (initContainersBuilder_ != null) {
          return initContainersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(initContainers_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder addInitContainersBuilder() {
        return getInitContainersFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Container.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder addInitContainersBuilder(int index) {
        return getInitContainersFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Container.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of initialization containers belonging to the pod.
       * Init containers are executed in order prior to containers being started. If any
       * init container fails, the pod is considered to have failed and is handled according
       * to its restartPolicy. The name for an init container or normal container must be
       * unique among all containers.
       * Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes.
       * The resourceRequirements of an init container are taken into account during scheduling
       * by finding the highest request/limit for each resource type, and then using the max of
       * of that value or the sum of the normal containers. Limits are applied to init containers
       * in a similar fashion.
       * Init containers cannot currently be added or removed.
       * Cannot be updated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container initContainers = 20;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Container.Builder>
          getInitContainersBuilderList() {
        return getInitContainersFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Container,
              io.kubernetes.client.proto.V1.Container.Builder,
              io.kubernetes.client.proto.V1.ContainerOrBuilder>
          getInitContainersFieldBuilder() {
        if (initContainersBuilder_ == null) {
          initContainersBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Container,
                  io.kubernetes.client.proto.V1.Container.Builder,
                  io.kubernetes.client.proto.V1.ContainerOrBuilder>(
                  initContainers_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          initContainers_ = null;
        }
        return initContainersBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Container> containers_ =
          java.util.Collections.emptyList();

      private void ensureContainersIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          containers_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.Container>(containers_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Container,
              io.kubernetes.client.proto.V1.Container.Builder,
              io.kubernetes.client.proto.V1.ContainerOrBuilder>
          containersBuilder_;

      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Container> getContainersList() {
        if (containersBuilder_ == null) {
          return java.util.Collections.unmodifiableList(containers_);
        } else {
          return containersBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public int getContainersCount() {
        if (containersBuilder_ == null) {
          return containers_.size();
        } else {
          return containersBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Container getContainers(int index) {
        if (containersBuilder_ == null) {
          return containers_.get(index);
        } else {
          return containersBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder setContainers(int index, io.kubernetes.client.proto.V1.Container value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.set(index, value);
          onChanged();
        } else {
          containersBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder setContainers(
          int index, io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.set(index, builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder addContainers(io.kubernetes.client.proto.V1.Container value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.add(value);
          onChanged();
        } else {
          containersBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder addContainers(int index, io.kubernetes.client.proto.V1.Container value) {
        if (containersBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainersIsMutable();
          containers_.add(index, value);
          onChanged();
        } else {
          containersBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder addContainers(
          io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.add(builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder addContainers(
          int index, io.kubernetes.client.proto.V1.Container.Builder builderForValue) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.add(index, builderForValue.build());
          onChanged();
        } else {
          containersBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder addAllContainers(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Container> values) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, containers_);
          onChanged();
        } else {
          containersBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder clearContainers() {
        if (containersBuilder_ == null) {
          containers_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          containersBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public Builder removeContainers(int index) {
        if (containersBuilder_ == null) {
          ensureContainersIsMutable();
          containers_.remove(index);
          onChanged();
        } else {
          containersBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder getContainersBuilder(int index) {
        return getContainersFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerOrBuilder getContainersOrBuilder(int index) {
        if (containersBuilder_ == null) {
          return containers_.get(index);
        } else {
          return containersBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerOrBuilder>
          getContainersOrBuilderList() {
        if (containersBuilder_ != null) {
          return containersBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(containers_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder addContainersBuilder() {
        return getContainersFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Container.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Container.Builder addContainersBuilder(int index) {
        return getContainersFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Container.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of containers belonging to the pod.
       * Containers cannot currently be added or removed.
       * There must be at least one container in a Pod.
       * Cannot be updated.
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Container containers = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Container.Builder>
          getContainersBuilderList() {
        return getContainersFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Container,
              io.kubernetes.client.proto.V1.Container.Builder,
              io.kubernetes.client.proto.V1.ContainerOrBuilder>
          getContainersFieldBuilder() {
        if (containersBuilder_ == null) {
          containersBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Container,
                  io.kubernetes.client.proto.V1.Container.Builder,
                  io.kubernetes.client.proto.V1.ContainerOrBuilder>(
                  containers_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          containers_ = null;
        }
        return containersBuilder_;
      }

      private java.lang.Object restartPolicy_ = "";
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public boolean hasRestartPolicy() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public java.lang.String getRestartPolicy() {
        java.lang.Object ref = restartPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            restartPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public com.google.protobuf.ByteString getRestartPolicyBytes() {
        java.lang.Object ref = restartPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          restartPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public Builder setRestartPolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        restartPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public Builder clearRestartPolicy() {
        bitField0_ = (bitField0_ & ~0x00000008);
        restartPolicy_ = getDefaultInstance().getRestartPolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Restart policy for all containers within the pod.
       * One of Always, OnFailure, Never.
       * Default to Always.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
       * +optional
       * </pre>
       *
       * <code>optional string restartPolicy = 3;</code>
       */
      public Builder setRestartPolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        restartPolicy_ = value;
        onChanged();
        return this;
      }

      private long terminationGracePeriodSeconds_;
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
       * Value must be non-negative integer. The value zero indicates delete immediately.
       * If this value is nil, the default grace period will be used instead.
       * The grace period is the duration in seconds after the processes running in the pod are sent
       * a termination signal and the time when the processes are forcibly halted with a kill signal.
       * Set this value longer than the expected cleanup time for your process.
       * Defaults to 30 seconds.
       * +optional
       * </pre>
       *
       * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
       */
      public boolean hasTerminationGracePeriodSeconds() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
       * Value must be non-negative integer. The value zero indicates delete immediately.
       * If this value is nil, the default grace period will be used instead.
       * The grace period is the duration in seconds after the processes running in the pod are sent
       * a termination signal and the time when the processes are forcibly halted with a kill signal.
       * Set this value longer than the expected cleanup time for your process.
       * Defaults to 30 seconds.
       * +optional
       * </pre>
       *
       * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
       */
      public long getTerminationGracePeriodSeconds() {
        return terminationGracePeriodSeconds_;
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
       * Value must be non-negative integer. The value zero indicates delete immediately.
       * If this value is nil, the default grace period will be used instead.
       * The grace period is the duration in seconds after the processes running in the pod are sent
       * a termination signal and the time when the processes are forcibly halted with a kill signal.
       * Set this value longer than the expected cleanup time for your process.
       * Defaults to 30 seconds.
       * +optional
       * </pre>
       *
       * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
       */
      public Builder setTerminationGracePeriodSeconds(long value) {
        bitField0_ |= 0x00000010;
        terminationGracePeriodSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod needs to terminate gracefully. May be decreased in delete request.
       * Value must be non-negative integer. The value zero indicates delete immediately.
       * If this value is nil, the default grace period will be used instead.
       * The grace period is the duration in seconds after the processes running in the pod are sent
       * a termination signal and the time when the processes are forcibly halted with a kill signal.
       * Set this value longer than the expected cleanup time for your process.
       * Defaults to 30 seconds.
       * +optional
       * </pre>
       *
       * <code>optional int64 terminationGracePeriodSeconds = 4;</code>
       */
      public Builder clearTerminationGracePeriodSeconds() {
        bitField0_ = (bitField0_ & ~0x00000010);
        terminationGracePeriodSeconds_ = 0L;
        onChanged();
        return this;
      }

      private long activeDeadlineSeconds_;
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod may be active on the node relative to
       * StartTime before the system will actively try to mark it failed and kill associated containers.
       * Value must be a positive integer.
       * +optional
       * </pre>
       *
       * <code>optional int64 activeDeadlineSeconds = 5;</code>
       */
      public boolean hasActiveDeadlineSeconds() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod may be active on the node relative to
       * StartTime before the system will actively try to mark it failed and kill associated containers.
       * Value must be a positive integer.
       * +optional
       * </pre>
       *
       * <code>optional int64 activeDeadlineSeconds = 5;</code>
       */
      public long getActiveDeadlineSeconds() {
        return activeDeadlineSeconds_;
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod may be active on the node relative to
       * StartTime before the system will actively try to mark it failed and kill associated containers.
       * Value must be a positive integer.
       * +optional
       * </pre>
       *
       * <code>optional int64 activeDeadlineSeconds = 5;</code>
       */
      public Builder setActiveDeadlineSeconds(long value) {
        bitField0_ |= 0x00000020;
        activeDeadlineSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional duration in seconds the pod may be active on the node relative to
       * StartTime before the system will actively try to mark it failed and kill associated containers.
       * Value must be a positive integer.
       * +optional
       * </pre>
       *
       * <code>optional int64 activeDeadlineSeconds = 5;</code>
       */
      public Builder clearActiveDeadlineSeconds() {
        bitField0_ = (bitField0_ & ~0x00000020);
        activeDeadlineSeconds_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object dnsPolicy_ = "";
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public boolean hasDnsPolicy() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public java.lang.String getDnsPolicy() {
        java.lang.Object ref = dnsPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            dnsPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public com.google.protobuf.ByteString getDnsPolicyBytes() {
        java.lang.Object ref = dnsPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          dnsPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public Builder setDnsPolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        dnsPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public Builder clearDnsPolicy() {
        bitField0_ = (bitField0_ & ~0x00000040);
        dnsPolicy_ = getDefaultInstance().getDnsPolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Set DNS policy for the pod.
       * Defaults to "ClusterFirst".
       * Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
       * DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy.
       * To have DNS options set along with hostNetwork, you have to specify DNS policy
       * explicitly to 'ClusterFirstWithHostNet'.
       * +optional
       * </pre>
       *
       * <code>optional string dnsPolicy = 6;</code>
       */
      public Builder setDnsPolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        dnsPolicy_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> nodeSelector_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetNodeSelector() {
        if (nodeSelector_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              NodeSelectorDefaultEntryHolder.defaultEntry);
        }
        return nodeSelector_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableNodeSelector() {
        onChanged();
        ;
        if (nodeSelector_ == null) {
          nodeSelector_ =
              com.google.protobuf.MapField.newMapField(NodeSelectorDefaultEntryHolder.defaultEntry);
        }
        if (!nodeSelector_.isMutable()) {
          nodeSelector_ = nodeSelector_.copy();
        }
        return nodeSelector_;
      }

      public int getNodeSelectorCount() {
        return internalGetNodeSelector().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public boolean containsNodeSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetNodeSelector().getMap().containsKey(key);
      }
      /** Use {@link #getNodeSelectorMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getNodeSelector() {
        return getNodeSelectorMap();
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getNodeSelectorMap() {
        return internalGetNodeSelector().getMap();
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public java.lang.String getNodeSelectorOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetNodeSelector().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public java.lang.String getNodeSelectorOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetNodeSelector().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearNodeSelector() {
        internalGetMutableNodeSelector().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public Builder removeNodeSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableNodeSelector().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableNodeSelector() {
        return internalGetMutableNodeSelector().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public Builder putNodeSelector(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableNodeSelector().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeSelector is a selector which must be true for the pod to fit on a node.
       * Selector which must match a node's labels for the pod to be scheduled on that node.
       * More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; nodeSelector = 7;</code>
       */
      public Builder putAllNodeSelector(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableNodeSelector().getMutableMap().putAll(values);
        return this;
      }

      private java.lang.Object serviceAccountName_ = "";
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public boolean hasServiceAccountName() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public java.lang.String getServiceAccountName() {
        java.lang.Object ref = serviceAccountName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serviceAccountName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public com.google.protobuf.ByteString getServiceAccountNameBytes() {
        java.lang.Object ref = serviceAccountName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          serviceAccountName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public Builder setServiceAccountName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        serviceAccountName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public Builder clearServiceAccountName() {
        bitField0_ = (bitField0_ & ~0x00000100);
        serviceAccountName_ = getDefaultInstance().getServiceAccountName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ServiceAccountName is the name of the ServiceAccount to use to run this pod.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccountName = 8;</code>
       */
      public Builder setServiceAccountNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        serviceAccountName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object serviceAccount_ = "";
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public boolean hasServiceAccount() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public java.lang.String getServiceAccount() {
        java.lang.Object ref = serviceAccount_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serviceAccount_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public com.google.protobuf.ByteString getServiceAccountBytes() {
        java.lang.Object ref = serviceAccount_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          serviceAccount_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public Builder setServiceAccount(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        serviceAccount_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public Builder clearServiceAccount() {
        bitField0_ = (bitField0_ & ~0x00000200);
        serviceAccount_ = getDefaultInstance().getServiceAccount();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * DeprecatedServiceAccount is a depreciated alias for ServiceAccountName.
       * Deprecated: Use serviceAccountName instead.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional string serviceAccount = 9;</code>
       */
      public Builder setServiceAccountBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        serviceAccount_ = value;
        onChanged();
        return this;
      }

      private boolean automountServiceAccountToken_;
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 21;</code>
       */
      public boolean hasAutomountServiceAccountToken() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 21;</code>
       */
      public boolean getAutomountServiceAccountToken() {
        return automountServiceAccountToken_;
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 21;</code>
       */
      public Builder setAutomountServiceAccountToken(boolean value) {
        bitField0_ |= 0x00000400;
        automountServiceAccountToken_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether a service account token should be automatically mounted.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 21;</code>
       */
      public Builder clearAutomountServiceAccountToken() {
        bitField0_ = (bitField0_ & ~0x00000400);
        automountServiceAccountToken_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object nodeName_ = "";
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public boolean hasNodeName() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public java.lang.String getNodeName() {
        java.lang.Object ref = nodeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nodeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public com.google.protobuf.ByteString getNodeNameBytes() {
        java.lang.Object ref = nodeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          nodeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public Builder setNodeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        nodeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public Builder clearNodeName() {
        bitField0_ = (bitField0_ & ~0x00000800);
        nodeName_ = getDefaultInstance().getNodeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * NodeName is a request to schedule this pod onto a specific node. If it is non-empty,
       * the scheduler simply schedules this pod onto that node, assuming that it fits resource
       * requirements.
       * +optional
       * </pre>
       *
       * <code>optional string nodeName = 10;</code>
       */
      public Builder setNodeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000800;
        nodeName_ = value;
        onChanged();
        return this;
      }

      private boolean hostNetwork_;
      /**
       *
       *
       * <pre>
       * Host networking requested for this pod. Use the host's network namespace.
       * If this option is set, the ports that will be used must be specified.
       * Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostNetwork = 11;</code>
       */
      public boolean hasHostNetwork() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * Host networking requested for this pod. Use the host's network namespace.
       * If this option is set, the ports that will be used must be specified.
       * Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostNetwork = 11;</code>
       */
      public boolean getHostNetwork() {
        return hostNetwork_;
      }
      /**
       *
       *
       * <pre>
       * Host networking requested for this pod. Use the host's network namespace.
       * If this option is set, the ports that will be used must be specified.
       * Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostNetwork = 11;</code>
       */
      public Builder setHostNetwork(boolean value) {
        bitField0_ |= 0x00001000;
        hostNetwork_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Host networking requested for this pod. Use the host's network namespace.
       * If this option is set, the ports that will be used must be specified.
       * Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostNetwork = 11;</code>
       */
      public Builder clearHostNetwork() {
        bitField0_ = (bitField0_ & ~0x00001000);
        hostNetwork_ = false;
        onChanged();
        return this;
      }

      private boolean hostPID_;
      /**
       *
       *
       * <pre>
       * Use the host's pid namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostPID = 12;</code>
       */
      public boolean hasHostPID() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       *
       *
       * <pre>
       * Use the host's pid namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostPID = 12;</code>
       */
      public boolean getHostPID() {
        return hostPID_;
      }
      /**
       *
       *
       * <pre>
       * Use the host's pid namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostPID = 12;</code>
       */
      public Builder setHostPID(boolean value) {
        bitField0_ |= 0x00002000;
        hostPID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Use the host's pid namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostPID = 12;</code>
       */
      public Builder clearHostPID() {
        bitField0_ = (bitField0_ & ~0x00002000);
        hostPID_ = false;
        onChanged();
        return this;
      }

      private boolean hostIPC_;
      /**
       *
       *
       * <pre>
       * Use the host's ipc namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostIPC = 13;</code>
       */
      public boolean hasHostIPC() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       *
       *
       * <pre>
       * Use the host's ipc namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostIPC = 13;</code>
       */
      public boolean getHostIPC() {
        return hostIPC_;
      }
      /**
       *
       *
       * <pre>
       * Use the host's ipc namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostIPC = 13;</code>
       */
      public Builder setHostIPC(boolean value) {
        bitField0_ |= 0x00004000;
        hostIPC_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Use the host's ipc namespace.
       * Optional: Default to false.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool hostIPC = 13;</code>
       */
      public Builder clearHostIPC() {
        bitField0_ = (bitField0_ & ~0x00004000);
        hostIPC_ = false;
        onChanged();
        return this;
      }

      private boolean shareProcessNamespace_;
      /**
       *
       *
       * <pre>
       * Share a single process namespace between all of the containers in a pod.
       * When this is set containers will be able to view and signal processes from other containers
       * in the same pod, and the first process in each container will not be assigned PID 1.
       * HostPID and ShareProcessNamespace cannot both be set.
       * Optional: Default to false.
       * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool shareProcessNamespace = 27;</code>
       */
      public boolean hasShareProcessNamespace() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       *
       *
       * <pre>
       * Share a single process namespace between all of the containers in a pod.
       * When this is set containers will be able to view and signal processes from other containers
       * in the same pod, and the first process in each container will not be assigned PID 1.
       * HostPID and ShareProcessNamespace cannot both be set.
       * Optional: Default to false.
       * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool shareProcessNamespace = 27;</code>
       */
      public boolean getShareProcessNamespace() {
        return shareProcessNamespace_;
      }
      /**
       *
       *
       * <pre>
       * Share a single process namespace between all of the containers in a pod.
       * When this is set containers will be able to view and signal processes from other containers
       * in the same pod, and the first process in each container will not be assigned PID 1.
       * HostPID and ShareProcessNamespace cannot both be set.
       * Optional: Default to false.
       * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool shareProcessNamespace = 27;</code>
       */
      public Builder setShareProcessNamespace(boolean value) {
        bitField0_ |= 0x00008000;
        shareProcessNamespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Share a single process namespace between all of the containers in a pod.
       * When this is set containers will be able to view and signal processes from other containers
       * in the same pod, and the first process in each container will not be assigned PID 1.
       * HostPID and ShareProcessNamespace cannot both be set.
       * Optional: Default to false.
       * This field is beta-level and may be disabled with the PodShareProcessNamespace feature.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>optional bool shareProcessNamespace = 27;</code>
       */
      public Builder clearShareProcessNamespace() {
        bitField0_ = (bitField0_ & ~0x00008000);
        shareProcessNamespace_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.PodSecurityContext securityContext_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSecurityContext,
              io.kubernetes.client.proto.V1.PodSecurityContext.Builder,
              io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder>
          securityContextBuilder_;
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public boolean hasSecurityContext() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public io.kubernetes.client.proto.V1.PodSecurityContext getSecurityContext() {
        if (securityContextBuilder_ == null) {
          return securityContext_ == null
              ? io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance()
              : securityContext_;
        } else {
          return securityContextBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public Builder setSecurityContext(io.kubernetes.client.proto.V1.PodSecurityContext value) {
        if (securityContextBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          securityContext_ = value;
          onChanged();
        } else {
          securityContextBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public Builder setSecurityContext(
          io.kubernetes.client.proto.V1.PodSecurityContext.Builder builderForValue) {
        if (securityContextBuilder_ == null) {
          securityContext_ = builderForValue.build();
          onChanged();
        } else {
          securityContextBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public Builder mergeSecurityContext(io.kubernetes.client.proto.V1.PodSecurityContext value) {
        if (securityContextBuilder_ == null) {
          if (((bitField0_ & 0x00010000) == 0x00010000)
              && securityContext_ != null
              && securityContext_
                  != io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance()) {
            securityContext_ =
                io.kubernetes.client.proto.V1.PodSecurityContext.newBuilder(securityContext_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            securityContext_ = value;
          }
          onChanged();
        } else {
          securityContextBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public Builder clearSecurityContext() {
        if (securityContextBuilder_ == null) {
          securityContext_ = null;
          onChanged();
        } else {
          securityContextBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public io.kubernetes.client.proto.V1.PodSecurityContext.Builder getSecurityContextBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getSecurityContextFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      public io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder
          getSecurityContextOrBuilder() {
        if (securityContextBuilder_ != null) {
          return securityContextBuilder_.getMessageOrBuilder();
        } else {
          return securityContext_ == null
              ? io.kubernetes.client.proto.V1.PodSecurityContext.getDefaultInstance()
              : securityContext_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecurityContext holds pod-level security attributes and common container settings.
       * Optional: Defaults to empty.  See type description for default values of each field.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSecurityContext securityContext = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSecurityContext,
              io.kubernetes.client.proto.V1.PodSecurityContext.Builder,
              io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder>
          getSecurityContextFieldBuilder() {
        if (securityContextBuilder_ == null) {
          securityContextBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodSecurityContext,
                  io.kubernetes.client.proto.V1.PodSecurityContext.Builder,
                  io.kubernetes.client.proto.V1.PodSecurityContextOrBuilder>(
                  getSecurityContext(), getParentForChildren(), isClean());
          securityContext_ = null;
        }
        return securityContextBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> imagePullSecrets_ =
          java.util.Collections.emptyList();

      private void ensureImagePullSecretsIsMutable() {
        if (!((bitField0_ & 0x00020000) == 0x00020000)) {
          imagePullSecrets_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>(
                  imagePullSecrets_);
          bitField0_ |= 0x00020000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          imagePullSecretsBuilder_;

      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference>
          getImagePullSecretsList() {
        if (imagePullSecretsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(imagePullSecrets_);
        } else {
          return imagePullSecretsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public int getImagePullSecretsCount() {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.size();
        } else {
          return imagePullSecretsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index) {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.get(index);
        } else {
          return imagePullSecretsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder setImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.set(index, value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder setImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.set(index, builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder addImagePullSecrets(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder addImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(index, value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder addImagePullSecrets(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder addImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(index, builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder addAllImagePullSecrets(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.LocalObjectReference> values) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, imagePullSecrets_);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder clearImagePullSecrets() {
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00020000);
          onChanged();
        } else {
          imagePullSecretsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public Builder removeImagePullSecrets(int index) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.remove(index);
          onChanged();
        } else {
          imagePullSecretsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getImagePullSecretsBuilder(
          int index) {
        return getImagePullSecretsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getImagePullSecretsOrBuilder(int index) {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.get(index);
        } else {
          return imagePullSecretsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getImagePullSecretsOrBuilderList() {
        if (imagePullSecretsBuilder_ != null) {
          return imagePullSecretsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(imagePullSecrets_);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          addImagePullSecretsBuilder() {
        return getImagePullSecretsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder addImagePullSecretsBuilder(
          int index) {
        return getImagePullSecretsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec.
       * If specified, these secrets will be passed to individual puller implementations for them to use. For example,
       * in the case of docker, only DockerConfig type secrets are honored.
       * More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 15;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference.Builder>
          getImagePullSecretsBuilderList() {
        return getImagePullSecretsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getImagePullSecretsFieldBuilder() {
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecretsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  imagePullSecrets_,
                  ((bitField0_ & 0x00020000) == 0x00020000),
                  getParentForChildren(),
                  isClean());
          imagePullSecrets_ = null;
        }
        return imagePullSecretsBuilder_;
      }

      private java.lang.Object hostname_ = "";
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostname_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public com.google.protobuf.ByteString getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public Builder setHostname(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00040000;
        hostname_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00040000);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the hostname of the Pod
       * If not specified, the pod's hostname will be set to a system-defined value.
       * +optional
       * </pre>
       *
       * <code>optional string hostname = 16;</code>
       */
      public Builder setHostnameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00040000;
        hostname_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object subdomain_ = "";
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public boolean hasSubdomain() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public java.lang.String getSubdomain() {
        java.lang.Object ref = subdomain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            subdomain_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public com.google.protobuf.ByteString getSubdomainBytes() {
        java.lang.Object ref = subdomain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          subdomain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public Builder setSubdomain(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00080000;
        subdomain_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public Builder clearSubdomain() {
        bitField0_ = (bitField0_ & ~0x00080000);
        subdomain_ = getDefaultInstance().getSubdomain();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the fully qualified Pod hostname will be "&lt;hostname&gt;.&lt;subdomain&gt;.&lt;pod namespace&gt;.svc.&lt;cluster domain&gt;".
       * If not specified, the pod will not have a domainname at all.
       * +optional
       * </pre>
       *
       * <code>optional string subdomain = 17;</code>
       */
      public Builder setSubdomainBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00080000;
        subdomain_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.Affinity affinity_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Affinity,
              io.kubernetes.client.proto.V1.Affinity.Builder,
              io.kubernetes.client.proto.V1.AffinityOrBuilder>
          affinityBuilder_;
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public boolean hasAffinity() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public io.kubernetes.client.proto.V1.Affinity getAffinity() {
        if (affinityBuilder_ == null) {
          return affinity_ == null
              ? io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()
              : affinity_;
        } else {
          return affinityBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public Builder setAffinity(io.kubernetes.client.proto.V1.Affinity value) {
        if (affinityBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          affinity_ = value;
          onChanged();
        } else {
          affinityBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public Builder setAffinity(io.kubernetes.client.proto.V1.Affinity.Builder builderForValue) {
        if (affinityBuilder_ == null) {
          affinity_ = builderForValue.build();
          onChanged();
        } else {
          affinityBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public Builder mergeAffinity(io.kubernetes.client.proto.V1.Affinity value) {
        if (affinityBuilder_ == null) {
          if (((bitField0_ & 0x00100000) == 0x00100000)
              && affinity_ != null
              && affinity_ != io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()) {
            affinity_ =
                io.kubernetes.client.proto.V1.Affinity.newBuilder(affinity_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            affinity_ = value;
          }
          onChanged();
        } else {
          affinityBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public Builder clearAffinity() {
        if (affinityBuilder_ == null) {
          affinity_ = null;
          onChanged();
        } else {
          affinityBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public io.kubernetes.client.proto.V1.Affinity.Builder getAffinityBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getAffinityFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      public io.kubernetes.client.proto.V1.AffinityOrBuilder getAffinityOrBuilder() {
        if (affinityBuilder_ != null) {
          return affinityBuilder_.getMessageOrBuilder();
        } else {
          return affinity_ == null
              ? io.kubernetes.client.proto.V1.Affinity.getDefaultInstance()
              : affinity_;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's scheduling constraints
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Affinity affinity = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Affinity,
              io.kubernetes.client.proto.V1.Affinity.Builder,
              io.kubernetes.client.proto.V1.AffinityOrBuilder>
          getAffinityFieldBuilder() {
        if (affinityBuilder_ == null) {
          affinityBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Affinity,
                  io.kubernetes.client.proto.V1.Affinity.Builder,
                  io.kubernetes.client.proto.V1.AffinityOrBuilder>(
                  getAffinity(), getParentForChildren(), isClean());
          affinity_ = null;
        }
        return affinityBuilder_;
      }

      private java.lang.Object schedulerName_ = "";
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public boolean hasSchedulerName() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public java.lang.String getSchedulerName() {
        java.lang.Object ref = schedulerName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            schedulerName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public com.google.protobuf.ByteString getSchedulerNameBytes() {
        java.lang.Object ref = schedulerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          schedulerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public Builder setSchedulerName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00200000;
        schedulerName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public Builder clearSchedulerName() {
        bitField0_ = (bitField0_ & ~0x00200000);
        schedulerName_ = getDefaultInstance().getSchedulerName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod will be dispatched by specified scheduler.
       * If not specified, the pod will be dispatched by default scheduler.
       * +optional
       * </pre>
       *
       * <code>optional string schedulerName = 19;</code>
       */
      public Builder setSchedulerNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00200000;
        schedulerName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Toleration> tolerations_ =
          java.util.Collections.emptyList();

      private void ensureTolerationsIsMutable() {
        if (!((bitField0_ & 0x00400000) == 0x00400000)) {
          tolerations_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.Toleration>(tolerations_);
          bitField0_ |= 0x00400000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Toleration,
              io.kubernetes.client.proto.V1.Toleration.Builder,
              io.kubernetes.client.proto.V1.TolerationOrBuilder>
          tolerationsBuilder_;

      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Toleration> getTolerationsList() {
        if (tolerationsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tolerations_);
        } else {
          return tolerationsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public int getTolerationsCount() {
        if (tolerationsBuilder_ == null) {
          return tolerations_.size();
        } else {
          return tolerationsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public io.kubernetes.client.proto.V1.Toleration getTolerations(int index) {
        if (tolerationsBuilder_ == null) {
          return tolerations_.get(index);
        } else {
          return tolerationsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder setTolerations(int index, io.kubernetes.client.proto.V1.Toleration value) {
        if (tolerationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTolerationsIsMutable();
          tolerations_.set(index, value);
          onChanged();
        } else {
          tolerationsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder setTolerations(
          int index, io.kubernetes.client.proto.V1.Toleration.Builder builderForValue) {
        if (tolerationsBuilder_ == null) {
          ensureTolerationsIsMutable();
          tolerations_.set(index, builderForValue.build());
          onChanged();
        } else {
          tolerationsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder addTolerations(io.kubernetes.client.proto.V1.Toleration value) {
        if (tolerationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTolerationsIsMutable();
          tolerations_.add(value);
          onChanged();
        } else {
          tolerationsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder addTolerations(int index, io.kubernetes.client.proto.V1.Toleration value) {
        if (tolerationsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTolerationsIsMutable();
          tolerations_.add(index, value);
          onChanged();
        } else {
          tolerationsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder addTolerations(
          io.kubernetes.client.proto.V1.Toleration.Builder builderForValue) {
        if (tolerationsBuilder_ == null) {
          ensureTolerationsIsMutable();
          tolerations_.add(builderForValue.build());
          onChanged();
        } else {
          tolerationsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder addTolerations(
          int index, io.kubernetes.client.proto.V1.Toleration.Builder builderForValue) {
        if (tolerationsBuilder_ == null) {
          ensureTolerationsIsMutable();
          tolerations_.add(index, builderForValue.build());
          onChanged();
        } else {
          tolerationsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder addAllTolerations(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Toleration> values) {
        if (tolerationsBuilder_ == null) {
          ensureTolerationsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, tolerations_);
          onChanged();
        } else {
          tolerationsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder clearTolerations() {
        if (tolerationsBuilder_ == null) {
          tolerations_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00400000);
          onChanged();
        } else {
          tolerationsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public Builder removeTolerations(int index) {
        if (tolerationsBuilder_ == null) {
          ensureTolerationsIsMutable();
          tolerations_.remove(index);
          onChanged();
        } else {
          tolerationsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public io.kubernetes.client.proto.V1.Toleration.Builder getTolerationsBuilder(int index) {
        return getTolerationsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public io.kubernetes.client.proto.V1.TolerationOrBuilder getTolerationsOrBuilder(int index) {
        if (tolerationsBuilder_ == null) {
          return tolerations_.get(index);
        } else {
          return tolerationsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.TolerationOrBuilder>
          getTolerationsOrBuilderList() {
        if (tolerationsBuilder_ != null) {
          return tolerationsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tolerations_);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public io.kubernetes.client.proto.V1.Toleration.Builder addTolerationsBuilder() {
        return getTolerationsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Toleration.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public io.kubernetes.client.proto.V1.Toleration.Builder addTolerationsBuilder(int index) {
        return getTolerationsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Toleration.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, the pod's tolerations.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Toleration tolerations = 22;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Toleration.Builder>
          getTolerationsBuilderList() {
        return getTolerationsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Toleration,
              io.kubernetes.client.proto.V1.Toleration.Builder,
              io.kubernetes.client.proto.V1.TolerationOrBuilder>
          getTolerationsFieldBuilder() {
        if (tolerationsBuilder_ == null) {
          tolerationsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Toleration,
                  io.kubernetes.client.proto.V1.Toleration.Builder,
                  io.kubernetes.client.proto.V1.TolerationOrBuilder>(
                  tolerations_,
                  ((bitField0_ & 0x00400000) == 0x00400000),
                  getParentForChildren(),
                  isClean());
          tolerations_ = null;
        }
        return tolerationsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.HostAlias> hostAliases_ =
          java.util.Collections.emptyList();

      private void ensureHostAliasesIsMutable() {
        if (!((bitField0_ & 0x00800000) == 0x00800000)) {
          hostAliases_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.HostAlias>(hostAliases_);
          bitField0_ |= 0x00800000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostAlias,
              io.kubernetes.client.proto.V1.HostAlias.Builder,
              io.kubernetes.client.proto.V1.HostAliasOrBuilder>
          hostAliasesBuilder_;

      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.HostAlias> getHostAliasesList() {
        if (hostAliasesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(hostAliases_);
        } else {
          return hostAliasesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public int getHostAliasesCount() {
        if (hostAliasesBuilder_ == null) {
          return hostAliases_.size();
        } else {
          return hostAliasesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public io.kubernetes.client.proto.V1.HostAlias getHostAliases(int index) {
        if (hostAliasesBuilder_ == null) {
          return hostAliases_.get(index);
        } else {
          return hostAliasesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder setHostAliases(int index, io.kubernetes.client.proto.V1.HostAlias value) {
        if (hostAliasesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostAliasesIsMutable();
          hostAliases_.set(index, value);
          onChanged();
        } else {
          hostAliasesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder setHostAliases(
          int index, io.kubernetes.client.proto.V1.HostAlias.Builder builderForValue) {
        if (hostAliasesBuilder_ == null) {
          ensureHostAliasesIsMutable();
          hostAliases_.set(index, builderForValue.build());
          onChanged();
        } else {
          hostAliasesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder addHostAliases(io.kubernetes.client.proto.V1.HostAlias value) {
        if (hostAliasesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostAliasesIsMutable();
          hostAliases_.add(value);
          onChanged();
        } else {
          hostAliasesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder addHostAliases(int index, io.kubernetes.client.proto.V1.HostAlias value) {
        if (hostAliasesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureHostAliasesIsMutable();
          hostAliases_.add(index, value);
          onChanged();
        } else {
          hostAliasesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder addHostAliases(
          io.kubernetes.client.proto.V1.HostAlias.Builder builderForValue) {
        if (hostAliasesBuilder_ == null) {
          ensureHostAliasesIsMutable();
          hostAliases_.add(builderForValue.build());
          onChanged();
        } else {
          hostAliasesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder addHostAliases(
          int index, io.kubernetes.client.proto.V1.HostAlias.Builder builderForValue) {
        if (hostAliasesBuilder_ == null) {
          ensureHostAliasesIsMutable();
          hostAliases_.add(index, builderForValue.build());
          onChanged();
        } else {
          hostAliasesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder addAllHostAliases(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.HostAlias> values) {
        if (hostAliasesBuilder_ == null) {
          ensureHostAliasesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, hostAliases_);
          onChanged();
        } else {
          hostAliasesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder clearHostAliases() {
        if (hostAliasesBuilder_ == null) {
          hostAliases_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00800000);
          onChanged();
        } else {
          hostAliasesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public Builder removeHostAliases(int index) {
        if (hostAliasesBuilder_ == null) {
          ensureHostAliasesIsMutable();
          hostAliases_.remove(index);
          onChanged();
        } else {
          hostAliasesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public io.kubernetes.client.proto.V1.HostAlias.Builder getHostAliasesBuilder(int index) {
        return getHostAliasesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public io.kubernetes.client.proto.V1.HostAliasOrBuilder getHostAliasesOrBuilder(int index) {
        if (hostAliasesBuilder_ == null) {
          return hostAliases_.get(index);
        } else {
          return hostAliasesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.HostAliasOrBuilder>
          getHostAliasesOrBuilderList() {
        if (hostAliasesBuilder_ != null) {
          return hostAliasesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(hostAliases_);
        }
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public io.kubernetes.client.proto.V1.HostAlias.Builder addHostAliasesBuilder() {
        return getHostAliasesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.HostAlias.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public io.kubernetes.client.proto.V1.HostAlias.Builder addHostAliasesBuilder(int index) {
        return getHostAliasesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.HostAlias.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts
       * file if specified. This is only valid for non-hostNetwork pods.
       * +optional
       * +patchMergeKey=ip
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.HostAlias hostAliases = 23;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.HostAlias.Builder>
          getHostAliasesBuilderList() {
        return getHostAliasesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostAlias,
              io.kubernetes.client.proto.V1.HostAlias.Builder,
              io.kubernetes.client.proto.V1.HostAliasOrBuilder>
          getHostAliasesFieldBuilder() {
        if (hostAliasesBuilder_ == null) {
          hostAliasesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.HostAlias,
                  io.kubernetes.client.proto.V1.HostAlias.Builder,
                  io.kubernetes.client.proto.V1.HostAliasOrBuilder>(
                  hostAliases_,
                  ((bitField0_ & 0x00800000) == 0x00800000),
                  getParentForChildren(),
                  isClean());
          hostAliases_ = null;
        }
        return hostAliasesBuilder_;
      }

      private java.lang.Object priorityClassName_ = "";
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public boolean hasPriorityClassName() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public java.lang.String getPriorityClassName() {
        java.lang.Object ref = priorityClassName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            priorityClassName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public com.google.protobuf.ByteString getPriorityClassNameBytes() {
        java.lang.Object ref = priorityClassName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          priorityClassName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public Builder setPriorityClassName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x01000000;
        priorityClassName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public Builder clearPriorityClassName() {
        bitField0_ = (bitField0_ & ~0x01000000);
        priorityClassName_ = getDefaultInstance().getPriorityClassName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, indicates the pod's priority. "system-node-critical" and
       * "system-cluster-critical" are two special keywords which indicate the
       * highest priorities with the former being the highest priority. Any other
       * name must be defined by creating a PriorityClass object with that name.
       * If not specified, the pod priority will be default or zero if there is no
       * default.
       * +optional
       * </pre>
       *
       * <code>optional string priorityClassName = 24;</code>
       */
      public Builder setPriorityClassNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x01000000;
        priorityClassName_ = value;
        onChanged();
        return this;
      }

      private int priority_;
      /**
       *
       *
       * <pre>
       * The priority value. Various system components use this field to find the
       * priority of the pod. When Priority Admission Controller is enabled, it
       * prevents users from setting this field. The admission controller populates
       * this field from PriorityClassName.
       * The higher the value, the higher the priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 25;</code>
       */
      public boolean hasPriority() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      /**
       *
       *
       * <pre>
       * The priority value. Various system components use this field to find the
       * priority of the pod. When Priority Admission Controller is enabled, it
       * prevents users from setting this field. The admission controller populates
       * this field from PriorityClassName.
       * The higher the value, the higher the priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 25;</code>
       */
      public int getPriority() {
        return priority_;
      }
      /**
       *
       *
       * <pre>
       * The priority value. Various system components use this field to find the
       * priority of the pod. When Priority Admission Controller is enabled, it
       * prevents users from setting this field. The admission controller populates
       * this field from PriorityClassName.
       * The higher the value, the higher the priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 25;</code>
       */
      public Builder setPriority(int value) {
        bitField0_ |= 0x02000000;
        priority_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The priority value. Various system components use this field to find the
       * priority of the pod. When Priority Admission Controller is enabled, it
       * prevents users from setting this field. The admission controller populates
       * this field from PriorityClassName.
       * The higher the value, the higher the priority.
       * +optional
       * </pre>
       *
       * <code>optional int32 priority = 25;</code>
       */
      public Builder clearPriority() {
        bitField0_ = (bitField0_ & ~0x02000000);
        priority_ = 0;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.PodDNSConfig dnsConfig_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodDNSConfig,
              io.kubernetes.client.proto.V1.PodDNSConfig.Builder,
              io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder>
          dnsConfigBuilder_;
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public boolean hasDnsConfig() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfig getDnsConfig() {
        if (dnsConfigBuilder_ == null) {
          return dnsConfig_ == null
              ? io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()
              : dnsConfig_;
        } else {
          return dnsConfigBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public Builder setDnsConfig(io.kubernetes.client.proto.V1.PodDNSConfig value) {
        if (dnsConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dnsConfig_ = value;
          onChanged();
        } else {
          dnsConfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public Builder setDnsConfig(
          io.kubernetes.client.proto.V1.PodDNSConfig.Builder builderForValue) {
        if (dnsConfigBuilder_ == null) {
          dnsConfig_ = builderForValue.build();
          onChanged();
        } else {
          dnsConfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public Builder mergeDnsConfig(io.kubernetes.client.proto.V1.PodDNSConfig value) {
        if (dnsConfigBuilder_ == null) {
          if (((bitField0_ & 0x04000000) == 0x04000000)
              && dnsConfig_ != null
              && dnsConfig_ != io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()) {
            dnsConfig_ =
                io.kubernetes.client.proto.V1.PodDNSConfig.newBuilder(dnsConfig_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            dnsConfig_ = value;
          }
          onChanged();
        } else {
          dnsConfigBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public Builder clearDnsConfig() {
        if (dnsConfigBuilder_ == null) {
          dnsConfig_ = null;
          onChanged();
        } else {
          dnsConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfig.Builder getDnsConfigBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getDnsConfigFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      public io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder getDnsConfigOrBuilder() {
        if (dnsConfigBuilder_ != null) {
          return dnsConfigBuilder_.getMessageOrBuilder();
        } else {
          return dnsConfig_ == null
              ? io.kubernetes.client.proto.V1.PodDNSConfig.getDefaultInstance()
              : dnsConfig_;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the DNS parameters of a pod.
       * Parameters specified here will be merged to the generated DNS
       * configuration based on DNSPolicy.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodDNSConfig dnsConfig = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodDNSConfig,
              io.kubernetes.client.proto.V1.PodDNSConfig.Builder,
              io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder>
          getDnsConfigFieldBuilder() {
        if (dnsConfigBuilder_ == null) {
          dnsConfigBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodDNSConfig,
                  io.kubernetes.client.proto.V1.PodDNSConfig.Builder,
                  io.kubernetes.client.proto.V1.PodDNSConfigOrBuilder>(
                  getDnsConfig(), getParentForChildren(), isClean());
          dnsConfig_ = null;
        }
        return dnsConfigBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate> readinessGates_ =
          java.util.Collections.emptyList();

      private void ensureReadinessGatesIsMutable() {
        if (!((bitField0_ & 0x08000000) == 0x08000000)) {
          readinessGates_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PodReadinessGate>(
                  readinessGates_);
          bitField0_ |= 0x08000000;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodReadinessGate,
              io.kubernetes.client.proto.V1.PodReadinessGate.Builder,
              io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>
          readinessGatesBuilder_;

      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate>
          getReadinessGatesList() {
        if (readinessGatesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(readinessGates_);
        } else {
          return readinessGatesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public int getReadinessGatesCount() {
        if (readinessGatesBuilder_ == null) {
          return readinessGates_.size();
        } else {
          return readinessGatesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public io.kubernetes.client.proto.V1.PodReadinessGate getReadinessGates(int index) {
        if (readinessGatesBuilder_ == null) {
          return readinessGates_.get(index);
        } else {
          return readinessGatesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder setReadinessGates(
          int index, io.kubernetes.client.proto.V1.PodReadinessGate value) {
        if (readinessGatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReadinessGatesIsMutable();
          readinessGates_.set(index, value);
          onChanged();
        } else {
          readinessGatesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder setReadinessGates(
          int index, io.kubernetes.client.proto.V1.PodReadinessGate.Builder builderForValue) {
        if (readinessGatesBuilder_ == null) {
          ensureReadinessGatesIsMutable();
          readinessGates_.set(index, builderForValue.build());
          onChanged();
        } else {
          readinessGatesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder addReadinessGates(io.kubernetes.client.proto.V1.PodReadinessGate value) {
        if (readinessGatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReadinessGatesIsMutable();
          readinessGates_.add(value);
          onChanged();
        } else {
          readinessGatesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder addReadinessGates(
          int index, io.kubernetes.client.proto.V1.PodReadinessGate value) {
        if (readinessGatesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureReadinessGatesIsMutable();
          readinessGates_.add(index, value);
          onChanged();
        } else {
          readinessGatesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder addReadinessGates(
          io.kubernetes.client.proto.V1.PodReadinessGate.Builder builderForValue) {
        if (readinessGatesBuilder_ == null) {
          ensureReadinessGatesIsMutable();
          readinessGates_.add(builderForValue.build());
          onChanged();
        } else {
          readinessGatesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder addReadinessGates(
          int index, io.kubernetes.client.proto.V1.PodReadinessGate.Builder builderForValue) {
        if (readinessGatesBuilder_ == null) {
          ensureReadinessGatesIsMutable();
          readinessGates_.add(index, builderForValue.build());
          onChanged();
        } else {
          readinessGatesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder addAllReadinessGates(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodReadinessGate> values) {
        if (readinessGatesBuilder_ == null) {
          ensureReadinessGatesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, readinessGates_);
          onChanged();
        } else {
          readinessGatesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder clearReadinessGates() {
        if (readinessGatesBuilder_ == null) {
          readinessGates_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x08000000);
          onChanged();
        } else {
          readinessGatesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public Builder removeReadinessGates(int index) {
        if (readinessGatesBuilder_ == null) {
          ensureReadinessGatesIsMutable();
          readinessGates_.remove(index);
          onChanged();
        } else {
          readinessGatesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public io.kubernetes.client.proto.V1.PodReadinessGate.Builder getReadinessGatesBuilder(
          int index) {
        return getReadinessGatesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder getReadinessGatesOrBuilder(
          int index) {
        if (readinessGatesBuilder_ == null) {
          return readinessGates_.get(index);
        } else {
          return readinessGatesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>
          getReadinessGatesOrBuilderList() {
        if (readinessGatesBuilder_ != null) {
          return readinessGatesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(readinessGates_);
        }
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public io.kubernetes.client.proto.V1.PodReadinessGate.Builder addReadinessGatesBuilder() {
        return getReadinessGatesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodReadinessGate.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public io.kubernetes.client.proto.V1.PodReadinessGate.Builder addReadinessGatesBuilder(
          int index) {
        return getReadinessGatesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PodReadinessGate.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If specified, all readiness gates will be evaluated for pod readiness.
       * A pod is ready when all its containers are ready AND
       * all conditions specified in the readiness gates have status equal to "True"
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodReadinessGate readinessGates = 28;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodReadinessGate.Builder>
          getReadinessGatesBuilderList() {
        return getReadinessGatesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodReadinessGate,
              io.kubernetes.client.proto.V1.PodReadinessGate.Builder,
              io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>
          getReadinessGatesFieldBuilder() {
        if (readinessGatesBuilder_ == null) {
          readinessGatesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodReadinessGate,
                  io.kubernetes.client.proto.V1.PodReadinessGate.Builder,
                  io.kubernetes.client.proto.V1.PodReadinessGateOrBuilder>(
                  readinessGates_,
                  ((bitField0_ & 0x08000000) == 0x08000000),
                  getParentForChildren(),
                  isClean());
          readinessGates_ = null;
        }
        return readinessGatesBuilder_;
      }

      private java.lang.Object runtimeClassName_ = "";
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public boolean hasRuntimeClassName() {
        return ((bitField0_ & 0x10000000) == 0x10000000);
      }
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public java.lang.String getRuntimeClassName() {
        java.lang.Object ref = runtimeClassName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            runtimeClassName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public com.google.protobuf.ByteString getRuntimeClassNameBytes() {
        java.lang.Object ref = runtimeClassName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          runtimeClassName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public Builder setRuntimeClassName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x10000000;
        runtimeClassName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public Builder clearRuntimeClassName() {
        bitField0_ = (bitField0_ & ~0x10000000);
        runtimeClassName_ = getDefaultInstance().getRuntimeClassName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used
       * to run this pod.  If no RuntimeClass resource matches the named class, the pod will not be run.
       * If unset or empty, the "legacy" RuntimeClass will be used, which is an implicit class with an
       * empty definition that uses the default runtime handler.
       * More info: https://github.com/kubernetes/community/blob/master/keps/sig-node/0014-runtime-class.md
       * This is an alpha feature and may change in the future.
       * +optional
       * </pre>
       *
       * <code>optional string runtimeClassName = 29;</code>
       */
      public Builder setRuntimeClassNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x10000000;
        runtimeClassName_ = value;
        onChanged();
        return this;
      }

      private boolean enableServiceLinks_;
      /**
       *
       *
       * <pre>
       * EnableServiceLinks indicates whether information about services should be injected into pod's
       * environment variables, matching the syntax of Docker links.
       * Optional: Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool enableServiceLinks = 30;</code>
       */
      public boolean hasEnableServiceLinks() {
        return ((bitField0_ & 0x20000000) == 0x20000000);
      }
      /**
       *
       *
       * <pre>
       * EnableServiceLinks indicates whether information about services should be injected into pod's
       * environment variables, matching the syntax of Docker links.
       * Optional: Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool enableServiceLinks = 30;</code>
       */
      public boolean getEnableServiceLinks() {
        return enableServiceLinks_;
      }
      /**
       *
       *
       * <pre>
       * EnableServiceLinks indicates whether information about services should be injected into pod's
       * environment variables, matching the syntax of Docker links.
       * Optional: Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool enableServiceLinks = 30;</code>
       */
      public Builder setEnableServiceLinks(boolean value) {
        bitField0_ |= 0x20000000;
        enableServiceLinks_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * EnableServiceLinks indicates whether information about services should be injected into pod's
       * environment variables, matching the syntax of Docker links.
       * Optional: Defaults to true.
       * +optional
       * </pre>
       *
       * <code>optional bool enableServiceLinks = 30;</code>
       */
      public Builder clearEnableServiceLinks() {
        bitField0_ = (bitField0_ & ~0x20000000);
        enableServiceLinks_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodSpec)
    private static final io.kubernetes.client.proto.V1.PodSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodSpec();
    }

    public static io.kubernetes.client.proto.V1.PodSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodSpec> PARSER =
        new com.google.protobuf.AbstractParser<PodSpec>() {
          @java.lang.Override
          public PodSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    boolean hasPhase();
    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    java.lang.String getPhase();
    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    com.google.protobuf.ByteString getPhaseBytes();

    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodCondition> getConditionsList();
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodCondition getConditions(int index);
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodConditionOrBuilder getConditionsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();

    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    boolean hasNominatedNodeName();
    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    java.lang.String getNominatedNodeName();
    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    com.google.protobuf.ByteString getNominatedNodeNameBytes();

    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    boolean hasHostIP();
    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    java.lang.String getHostIP();
    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    com.google.protobuf.ByteString getHostIPBytes();

    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    boolean hasPodIP();
    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    java.lang.String getPodIP();
    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    com.google.protobuf.ByteString getPodIPBytes();

    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    boolean hasStartTime();
    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    io.kubernetes.client.proto.Meta.Time getStartTime();
    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getStartTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> getInitContainerStatusesList();
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStatus getInitContainerStatuses(int index);
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    int getInitContainerStatusesCount();
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
        getInitContainerStatusesOrBuilderList();
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStatusOrBuilder getInitContainerStatusesOrBuilder(
        int index);

    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> getContainerStatusesList();
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStatus getContainerStatuses(int index);
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    int getContainerStatusesCount();
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
        getContainerStatusesOrBuilderList();
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    io.kubernetes.client.proto.V1.ContainerStatusOrBuilder getContainerStatusesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    boolean hasQosClass();
    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    java.lang.String getQosClass();
    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    com.google.protobuf.ByteString getQosClassBytes();
  }
  /**
   *
   *
   * <pre>
   * PodStatus represents information about the status of a pod. Status may trail the actual
   * state of a system, especially if the node that hosts the pod cannot contact the control
   * plane.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodStatus}
   */
  public static final class PodStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodStatus)
      PodStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodStatus.newBuilder() to construct.
    private PodStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodStatus() {
      phase_ = "";
      conditions_ = java.util.Collections.emptyList();
      message_ = "";
      reason_ = "";
      nominatedNodeName_ = "";
      hostIP_ = "";
      podIP_ = "";
      initContainerStatuses_ = java.util.Collections.emptyList();
      containerStatuses_ = java.util.Collections.emptyList();
      qosClass_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                phase_ = bs;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  conditions_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.PodCondition>();
                  mutable_bitField0_ |= 0x00000002;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodCondition.PARSER, extensionRegistry));
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                message_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                reason_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                hostIP_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                podIP_ = bs;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = startTime_.toBuilder();
                }
                startTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(startTime_);
                  startTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            case 66:
              {
                if (!((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
                  containerStatuses_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>();
                  mutable_bitField0_ |= 0x00000200;
                }
                containerStatuses_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerStatus.PARSER, extensionRegistry));
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                qosClass_ = bs;
                break;
              }
            case 82:
              {
                if (!((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
                  initContainerStatuses_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>();
                  mutable_bitField0_ |= 0x00000100;
                }
                initContainerStatuses_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ContainerStatus.PARSER, extensionRegistry));
                break;
              }
            case 90:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                nominatedNodeName_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        if (((mutable_bitField0_ & 0x00000200) == 0x00000200)) {
          containerStatuses_ = java.util.Collections.unmodifiableList(containerStatuses_);
        }
        if (((mutable_bitField0_ & 0x00000100) == 0x00000100)) {
          initContainerStatuses_ = java.util.Collections.unmodifiableList(initContainerStatuses_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_PodStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodStatus.class,
              io.kubernetes.client.proto.V1.PodStatus.Builder.class);
    }

    private int bitField0_;
    public static final int PHASE_FIELD_NUMBER = 1;
    private volatile java.lang.Object phase_;
    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public boolean hasPhase() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public java.lang.String getPhase() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          phase_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
     * The conditions array, the reason and message fields, and the individual container status
     * arrays contain more detail about the pod's status.
     * There are five possible phase values:
     * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
     * container images has not been created. This includes time before being scheduled as
     * well as time spent downloading images over the network, which could take a while.
     * Running: The pod has been bound to a node, and all of the containers have been created.
     * At least one container is still running, or is in the process of starting or restarting.
     * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
     * Failed: All containers in the pod have terminated, and at least one container has
     * terminated in failure. The container either exited with non-zero status or was terminated
     * by the system.
     * Unknown: For some reason the state of the pod could not be obtained, typically due to an
     * error in communicating with the host of the pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
     * +optional
     * </pre>
     *
     * <code>optional string phase = 1;</code>
     */
    public com.google.protobuf.ByteString getPhaseBytes() {
      java.lang.Object ref = phase_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        phase_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CONDITIONS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.PodCondition> conditions_;
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodCondition> getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Current service state of pod.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodConditionOrBuilder getConditionsOrBuilder(int index) {
      return conditions_.get(index);
    }

    public static final int MESSAGE_FIELD_NUMBER = 3;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about why the pod is in this condition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 3;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int REASON_FIELD_NUMBER = 4;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * A brief CamelCase message indicating details about why the pod is in this state.
     * e.g. 'Evicted'
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NOMINATEDNODENAME_FIELD_NUMBER = 11;
    private volatile java.lang.Object nominatedNodeName_;
    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    public boolean hasNominatedNodeName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    public java.lang.String getNominatedNodeName() {
      java.lang.Object ref = nominatedNodeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          nominatedNodeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
     * scheduled right away as preemption victims receive their graceful termination periods.
     * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
     * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
     * give the resources on this node to a higher priority pod that is created after preemption.
     * As a result, this field may be different than PodSpec.nodeName when the pod is
     * scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string nominatedNodeName = 11;</code>
     */
    public com.google.protobuf.ByteString getNominatedNodeNameBytes() {
      java.lang.Object ref = nominatedNodeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        nominatedNodeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HOSTIP_FIELD_NUMBER = 5;
    private volatile java.lang.Object hostIP_;
    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public boolean hasHostIP() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public java.lang.String getHostIP() {
      java.lang.Object ref = hostIP_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostIP_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
     * +optional
     * </pre>
     *
     * <code>optional string hostIP = 5;</code>
     */
    public com.google.protobuf.ByteString getHostIPBytes() {
      java.lang.Object ref = hostIP_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        hostIP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PODIP_FIELD_NUMBER = 6;
    private volatile java.lang.Object podIP_;
    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    public boolean hasPodIP() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    public java.lang.String getPodIP() {
      java.lang.Object ref = podIP_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          podIP_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * IP address allocated to the pod. Routable at least within the cluster.
     * Empty if not yet allocated.
     * +optional
     * </pre>
     *
     * <code>optional string podIP = 6;</code>
     */
    public com.google.protobuf.ByteString getPodIPBytes() {
      java.lang.Object ref = podIP_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        podIP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STARTTIME_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.Meta.Time startTime_;
    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    public boolean hasStartTime() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getStartTime() {
      return startTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startTime_;
    }
    /**
     *
     *
     * <pre>
     * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
     * This is before the Kubelet pulled the container image(s) for the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartTimeOrBuilder() {
      return startTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : startTime_;
    }

    public static final int INITCONTAINERSTATUSES_FIELD_NUMBER = 10;
    private java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> initContainerStatuses_;
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus>
        getInitContainerStatusesList() {
      return initContainerStatuses_;
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
        getInitContainerStatusesOrBuilderList() {
      return initContainerStatuses_;
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    public int getInitContainerStatusesCount() {
      return initContainerStatuses_.size();
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStatus getInitContainerStatuses(int index) {
      return initContainerStatuses_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per init container in the manifest. The most recent successful
     * init container will have ready = true, the most recently started container will have
     * startTime set.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStatusOrBuilder getInitContainerStatusesOrBuilder(
        int index) {
      return initContainerStatuses_.get(index);
    }

    public static final int CONTAINERSTATUSES_FIELD_NUMBER = 8;
    private java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> containerStatuses_;
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus>
        getContainerStatusesList() {
      return containerStatuses_;
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
        getContainerStatusesOrBuilderList() {
      return containerStatuses_;
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    public int getContainerStatusesCount() {
      return containerStatuses_.size();
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStatus getContainerStatuses(int index) {
      return containerStatuses_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The list has one entry per container in the manifest. Each entry is currently the output
     * of `docker inspect`.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ContainerStatusOrBuilder getContainerStatusesOrBuilder(
        int index) {
      return containerStatuses_.get(index);
    }

    public static final int QOSCLASS_FIELD_NUMBER = 9;
    private volatile java.lang.Object qosClass_;
    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    public boolean hasQosClass() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    public java.lang.String getQosClass() {
      java.lang.Object ref = qosClass_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          qosClass_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
     * See PodQOSClass type for available QOS classes
     * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
     * +optional
     * </pre>
     *
     * <code>optional string qosClass = 9;</code>
     */
    public com.google.protobuf.ByteString getQosClassBytes() {
      java.lang.Object ref = qosClass_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        qosClass_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, phase_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(2, conditions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, hostIP_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, podIP_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, getStartTime());
      }
      for (int i = 0; i < containerStatuses_.size(); i++) {
        output.writeMessage(8, containerStatuses_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, qosClass_);
      }
      for (int i = 0; i < initContainerStatuses_.size(); i++) {
        output.writeMessage(10, initContainerStatuses_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, nominatedNodeName_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, phase_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, conditions_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, message_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, hostIP_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, podIP_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getStartTime());
      }
      for (int i = 0; i < containerStatuses_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(8, containerStatuses_.get(i));
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, qosClass_);
      }
      for (int i = 0; i < initContainerStatuses_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                10, initContainerStatuses_.get(i));
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(11, nominatedNodeName_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodStatus other = (io.kubernetes.client.proto.V1.PodStatus) obj;

      boolean result = true;
      result = result && (hasPhase() == other.hasPhase());
      if (hasPhase()) {
        result = result && getPhase().equals(other.getPhase());
      }
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasNominatedNodeName() == other.hasNominatedNodeName());
      if (hasNominatedNodeName()) {
        result = result && getNominatedNodeName().equals(other.getNominatedNodeName());
      }
      result = result && (hasHostIP() == other.hasHostIP());
      if (hasHostIP()) {
        result = result && getHostIP().equals(other.getHostIP());
      }
      result = result && (hasPodIP() == other.hasPodIP());
      if (hasPodIP()) {
        result = result && getPodIP().equals(other.getPodIP());
      }
      result = result && (hasStartTime() == other.hasStartTime());
      if (hasStartTime()) {
        result = result && getStartTime().equals(other.getStartTime());
      }
      result =
          result && getInitContainerStatusesList().equals(other.getInitContainerStatusesList());
      result = result && getContainerStatusesList().equals(other.getContainerStatusesList());
      result = result && (hasQosClass() == other.hasQosClass());
      if (hasQosClass()) {
        result = result && getQosClass().equals(other.getQosClass());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPhase()) {
        hash = (37 * hash) + PHASE_FIELD_NUMBER;
        hash = (53 * hash) + getPhase().hashCode();
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasNominatedNodeName()) {
        hash = (37 * hash) + NOMINATEDNODENAME_FIELD_NUMBER;
        hash = (53 * hash) + getNominatedNodeName().hashCode();
      }
      if (hasHostIP()) {
        hash = (37 * hash) + HOSTIP_FIELD_NUMBER;
        hash = (53 * hash) + getHostIP().hashCode();
      }
      if (hasPodIP()) {
        hash = (37 * hash) + PODIP_FIELD_NUMBER;
        hash = (53 * hash) + getPodIP().hashCode();
      }
      if (hasStartTime()) {
        hash = (37 * hash) + STARTTIME_FIELD_NUMBER;
        hash = (53 * hash) + getStartTime().hashCode();
      }
      if (getInitContainerStatusesCount() > 0) {
        hash = (37 * hash) + INITCONTAINERSTATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getInitContainerStatusesList().hashCode();
      }
      if (getContainerStatusesCount() > 0) {
        hash = (37 * hash) + CONTAINERSTATUSES_FIELD_NUMBER;
        hash = (53 * hash) + getContainerStatusesList().hashCode();
      }
      if (hasQosClass()) {
        hash = (37 * hash) + QOSCLASS_FIELD_NUMBER;
        hash = (53 * hash) + getQosClass().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodStatus represents information about the status of a pod. Status may trail the actual
     * state of a system, especially if the node that hosts the pod cannot contact the control
     * plane.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodStatus)
        io.kubernetes.client.proto.V1.PodStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodStatus.class,
                io.kubernetes.client.proto.V1.PodStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
          getStartTimeFieldBuilder();
          getInitContainerStatusesFieldBuilder();
          getContainerStatusesFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        phase_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          conditionsBuilder_.clear();
        }
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        nominatedNodeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        hostIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        podIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        if (startTimeBuilder_ == null) {
          startTime_ = null;
        } else {
          startTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (initContainerStatusesBuilder_ == null) {
          initContainerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          initContainerStatusesBuilder_.clear();
        }
        if (containerStatusesBuilder_ == null) {
          containerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
        } else {
          containerStatusesBuilder_.clear();
        }
        qosClass_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatus build() {
        io.kubernetes.client.proto.V1.PodStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatus buildPartial() {
        io.kubernetes.client.proto.V1.PodStatus result =
            new io.kubernetes.client.proto.V1.PodStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.phase_ = phase_;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.message_ = message_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.nominatedNodeName_ = nominatedNodeName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.hostIP_ = hostIP_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        result.podIP_ = podIP_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        if (startTimeBuilder_ == null) {
          result.startTime_ = startTime_;
        } else {
          result.startTime_ = startTimeBuilder_.build();
        }
        if (initContainerStatusesBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)) {
            initContainerStatuses_ = java.util.Collections.unmodifiableList(initContainerStatuses_);
            bitField0_ = (bitField0_ & ~0x00000100);
          }
          result.initContainerStatuses_ = initContainerStatuses_;
        } else {
          result.initContainerStatuses_ = initContainerStatusesBuilder_.build();
        }
        if (containerStatusesBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)) {
            containerStatuses_ = java.util.Collections.unmodifiableList(containerStatuses_);
            bitField0_ = (bitField0_ & ~0x00000200);
          }
          result.containerStatuses_ = containerStatuses_;
        } else {
          result.containerStatuses_ = containerStatusesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000080;
        }
        result.qosClass_ = qosClass_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodStatus other) {
        if (other == io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()) return this;
        if (other.hasPhase()) {
          bitField0_ |= 0x00000001;
          phase_ = other.phase_;
          onChanged();
        }
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000002);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000004;
          message_ = other.message_;
          onChanged();
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000008;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasNominatedNodeName()) {
          bitField0_ |= 0x00000010;
          nominatedNodeName_ = other.nominatedNodeName_;
          onChanged();
        }
        if (other.hasHostIP()) {
          bitField0_ |= 0x00000020;
          hostIP_ = other.hostIP_;
          onChanged();
        }
        if (other.hasPodIP()) {
          bitField0_ |= 0x00000040;
          podIP_ = other.podIP_;
          onChanged();
        }
        if (other.hasStartTime()) {
          mergeStartTime(other.getStartTime());
        }
        if (initContainerStatusesBuilder_ == null) {
          if (!other.initContainerStatuses_.isEmpty()) {
            if (initContainerStatuses_.isEmpty()) {
              initContainerStatuses_ = other.initContainerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000100);
            } else {
              ensureInitContainerStatusesIsMutable();
              initContainerStatuses_.addAll(other.initContainerStatuses_);
            }
            onChanged();
          }
        } else {
          if (!other.initContainerStatuses_.isEmpty()) {
            if (initContainerStatusesBuilder_.isEmpty()) {
              initContainerStatusesBuilder_.dispose();
              initContainerStatusesBuilder_ = null;
              initContainerStatuses_ = other.initContainerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000100);
              initContainerStatusesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getInitContainerStatusesFieldBuilder()
                      : null;
            } else {
              initContainerStatusesBuilder_.addAllMessages(other.initContainerStatuses_);
            }
          }
        }
        if (containerStatusesBuilder_ == null) {
          if (!other.containerStatuses_.isEmpty()) {
            if (containerStatuses_.isEmpty()) {
              containerStatuses_ = other.containerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000200);
            } else {
              ensureContainerStatusesIsMutable();
              containerStatuses_.addAll(other.containerStatuses_);
            }
            onChanged();
          }
        } else {
          if (!other.containerStatuses_.isEmpty()) {
            if (containerStatusesBuilder_.isEmpty()) {
              containerStatusesBuilder_.dispose();
              containerStatusesBuilder_ = null;
              containerStatuses_ = other.containerStatuses_;
              bitField0_ = (bitField0_ & ~0x00000200);
              containerStatusesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getContainerStatusesFieldBuilder()
                      : null;
            } else {
              containerStatusesBuilder_.addAllMessages(other.containerStatuses_);
            }
          }
        }
        if (other.hasQosClass()) {
          bitField0_ |= 0x00000400;
          qosClass_ = other.qosClass_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object phase_ = "";
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public boolean hasPhase() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public java.lang.String getPhase() {
        java.lang.Object ref = phase_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            phase_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public com.google.protobuf.ByteString getPhaseBytes() {
        java.lang.Object ref = phase_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          phase_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhase(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder clearPhase() {
        bitField0_ = (bitField0_ & ~0x00000001);
        phase_ = getDefaultInstance().getPhase();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
       * The conditions array, the reason and message fields, and the individual container status
       * arrays contain more detail about the pod's status.
       * There are five possible phase values:
       * Pending: The pod has been accepted by the Kubernetes system, but one or more of the
       * container images has not been created. This includes time before being scheduled as
       * well as time spent downloading images over the network, which could take a while.
       * Running: The pod has been bound to a node, and all of the containers have been created.
       * At least one container is still running, or is in the process of starting or restarting.
       * Succeeded: All containers in the pod have terminated in success, and will not be restarted.
       * Failed: All containers in the pod have terminated, and at least one container has
       * terminated in failure. The container either exited with non-zero status or was terminated
       * by the system.
       * Unknown: For some reason the state of the pod could not be obtained, typically due to an
       * error in communicating with the host of the pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
       * +optional
       * </pre>
       *
       * <code>optional string phase = 1;</code>
       */
      public Builder setPhaseBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        phase_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PodCondition> conditions_ =
          java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          conditions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.PodCondition>(conditions_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodCondition,
              io.kubernetes.client.proto.V1.PodCondition.Builder,
              io.kubernetes.client.proto.V1.PodConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodCondition> getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder setConditions(int index, io.kubernetes.client.proto.V1.PodCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.PodCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder addConditions(io.kubernetes.client.proto.V1.PodCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder addConditions(int index, io.kubernetes.client.proto.V1.PodCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.PodCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.PodCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodCondition> values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodCondition.Builder getConditionsBuilder(int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodConditionOrBuilder getConditionsOrBuilder(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodCondition.Builder addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodCondition.Builder addConditionsBuilder(int index) {
        return getConditionsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PodCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Current service state of pod.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodCondition conditions = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodCondition.Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodCondition,
              io.kubernetes.client.proto.V1.PodCondition.Builder,
              io.kubernetes.client.proto.V1.PodConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodCondition,
                  io.kubernetes.client.proto.V1.PodCondition.Builder,
                  io.kubernetes.client.proto.V1.PodConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about why the pod is in this condition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 3;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        message_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A brief CamelCase message indicating details about why the pod is in this state.
       * e.g. 'Evicted'
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object nominatedNodeName_ = "";
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public boolean hasNominatedNodeName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public java.lang.String getNominatedNodeName() {
        java.lang.Object ref = nominatedNodeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            nominatedNodeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public com.google.protobuf.ByteString getNominatedNodeNameBytes() {
        java.lang.Object ref = nominatedNodeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          nominatedNodeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public Builder setNominatedNodeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        nominatedNodeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public Builder clearNominatedNodeName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        nominatedNodeName_ = getDefaultInstance().getNominatedNodeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be
       * scheduled right away as preemption victims receive their graceful termination periods.
       * This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide
       * to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to
       * give the resources on this node to a higher priority pod that is created after preemption.
       * As a result, this field may be different than PodSpec.nodeName when the pod is
       * scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string nominatedNodeName = 11;</code>
       */
      public Builder setNominatedNodeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        nominatedNodeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object hostIP_ = "";
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public boolean hasHostIP() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public java.lang.String getHostIP() {
        java.lang.Object ref = hostIP_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            hostIP_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public com.google.protobuf.ByteString getHostIPBytes() {
        java.lang.Object ref = hostIP_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          hostIP_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder setHostIP(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        hostIP_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder clearHostIP() {
        bitField0_ = (bitField0_ & ~0x00000020);
        hostIP_ = getDefaultInstance().getHostIP();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address of the host to which the pod is assigned. Empty if not yet scheduled.
       * +optional
       * </pre>
       *
       * <code>optional string hostIP = 5;</code>
       */
      public Builder setHostIPBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        hostIP_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object podIP_ = "";
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public boolean hasPodIP() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public java.lang.String getPodIP() {
        java.lang.Object ref = podIP_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            podIP_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public com.google.protobuf.ByteString getPodIPBytes() {
        java.lang.Object ref = podIP_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          podIP_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public Builder setPodIP(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        podIP_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public Builder clearPodIP() {
        bitField0_ = (bitField0_ & ~0x00000040);
        podIP_ = getDefaultInstance().getPodIP();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * IP address allocated to the pod. Routable at least within the cluster.
       * Empty if not yet allocated.
       * +optional
       * </pre>
       *
       * <code>optional string podIP = 6;</code>
       */
      public Builder setPodIPBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        podIP_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time startTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          startTimeBuilder_;
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public boolean hasStartTime() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getStartTime() {
        if (startTimeBuilder_ == null) {
          return startTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startTime_;
        } else {
          return startTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public Builder setStartTime(io.kubernetes.client.proto.Meta.Time value) {
        if (startTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          startTime_ = value;
          onChanged();
        } else {
          startTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public Builder setStartTime(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (startTimeBuilder_ == null) {
          startTime_ = builderForValue.build();
          onChanged();
        } else {
          startTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public Builder mergeStartTime(io.kubernetes.client.proto.Meta.Time value) {
        if (startTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && startTime_ != null
              && startTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            startTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(startTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            startTime_ = value;
          }
          onChanged();
        } else {
          startTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public Builder clearStartTime() {
        if (startTimeBuilder_ == null) {
          startTime_ = null;
          onChanged();
        } else {
          startTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getStartTimeBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getStartTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getStartTimeOrBuilder() {
        if (startTimeBuilder_ != null) {
          return startTimeBuilder_.getMessageOrBuilder();
        } else {
          return startTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : startTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * RFC 3339 date and time at which the object was acknowledged by the Kubelet.
       * This is before the Kubelet pulled the container image(s) for the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time startTime = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getStartTimeFieldBuilder() {
        if (startTimeBuilder_ == null) {
          startTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getStartTime(), getParentForChildren(), isClean());
          startTime_ = null;
        }
        return startTimeBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> initContainerStatuses_ =
          java.util.Collections.emptyList();

      private void ensureInitContainerStatusesIsMutable() {
        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
          initContainerStatuses_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>(
                  initContainerStatuses_);
          bitField0_ |= 0x00000100;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStatus,
              io.kubernetes.client.proto.V1.ContainerStatus.Builder,
              io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          initContainerStatusesBuilder_;

      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus>
          getInitContainerStatusesList() {
        if (initContainerStatusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(initContainerStatuses_);
        } else {
          return initContainerStatusesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public int getInitContainerStatusesCount() {
        if (initContainerStatusesBuilder_ == null) {
          return initContainerStatuses_.size();
        } else {
          return initContainerStatusesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus getInitContainerStatuses(int index) {
        if (initContainerStatusesBuilder_ == null) {
          return initContainerStatuses_.get(index);
        } else {
          return initContainerStatusesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder setInitContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (initContainerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.set(index, value);
          onChanged();
        } else {
          initContainerStatusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder setInitContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (initContainerStatusesBuilder_ == null) {
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          initContainerStatusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder addInitContainerStatuses(io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (initContainerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.add(value);
          onChanged();
        } else {
          initContainerStatusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder addInitContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (initContainerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.add(index, value);
          onChanged();
        } else {
          initContainerStatusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder addInitContainerStatuses(
          io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (initContainerStatusesBuilder_ == null) {
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.add(builderForValue.build());
          onChanged();
        } else {
          initContainerStatusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder addInitContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (initContainerStatusesBuilder_ == null) {
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          initContainerStatusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder addAllInitContainerStatuses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ContainerStatus> values) {
        if (initContainerStatusesBuilder_ == null) {
          ensureInitContainerStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, initContainerStatuses_);
          onChanged();
        } else {
          initContainerStatusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder clearInitContainerStatuses() {
        if (initContainerStatusesBuilder_ == null) {
          initContainerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000100);
          onChanged();
        } else {
          initContainerStatusesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public Builder removeInitContainerStatuses(int index) {
        if (initContainerStatusesBuilder_ == null) {
          ensureInitContainerStatusesIsMutable();
          initContainerStatuses_.remove(index);
          onChanged();
        } else {
          initContainerStatusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder getInitContainerStatusesBuilder(
          int index) {
        return getInitContainerStatusesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatusOrBuilder
          getInitContainerStatusesOrBuilder(int index) {
        if (initContainerStatusesBuilder_ == null) {
          return initContainerStatuses_.get(index);
        } else {
          return initContainerStatusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          getInitContainerStatusesOrBuilderList() {
        if (initContainerStatusesBuilder_ != null) {
          return initContainerStatusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(initContainerStatuses_);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder
          addInitContainerStatusesBuilder() {
        return getInitContainerStatusesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder addInitContainerStatusesBuilder(
          int index) {
        return getInitContainerStatusesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per init container in the manifest. The most recent successful
       * init container will have ready = true, the most recently started container will have
       * startTime set.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus initContainerStatuses = 10;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus.Builder>
          getInitContainerStatusesBuilderList() {
        return getInitContainerStatusesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStatus,
              io.kubernetes.client.proto.V1.ContainerStatus.Builder,
              io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          getInitContainerStatusesFieldBuilder() {
        if (initContainerStatusesBuilder_ == null) {
          initContainerStatusesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerStatus,
                  io.kubernetes.client.proto.V1.ContainerStatus.Builder,
                  io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>(
                  initContainerStatuses_,
                  ((bitField0_ & 0x00000100) == 0x00000100),
                  getParentForChildren(),
                  isClean());
          initContainerStatuses_ = null;
        }
        return initContainerStatusesBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ContainerStatus> containerStatuses_ =
          java.util.Collections.emptyList();

      private void ensureContainerStatusesIsMutable() {
        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
          containerStatuses_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ContainerStatus>(
                  containerStatuses_);
          bitField0_ |= 0x00000200;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStatus,
              io.kubernetes.client.proto.V1.ContainerStatus.Builder,
              io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          containerStatusesBuilder_;

      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus>
          getContainerStatusesList() {
        if (containerStatusesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(containerStatuses_);
        } else {
          return containerStatusesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public int getContainerStatusesCount() {
        if (containerStatusesBuilder_ == null) {
          return containerStatuses_.size();
        } else {
          return containerStatusesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus getContainerStatuses(int index) {
        if (containerStatusesBuilder_ == null) {
          return containerStatuses_.get(index);
        } else {
          return containerStatusesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder setContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (containerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainerStatusesIsMutable();
          containerStatuses_.set(index, value);
          onChanged();
        } else {
          containerStatusesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder setContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (containerStatusesBuilder_ == null) {
          ensureContainerStatusesIsMutable();
          containerStatuses_.set(index, builderForValue.build());
          onChanged();
        } else {
          containerStatusesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder addContainerStatuses(io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (containerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainerStatusesIsMutable();
          containerStatuses_.add(value);
          onChanged();
        } else {
          containerStatusesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder addContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus value) {
        if (containerStatusesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureContainerStatusesIsMutable();
          containerStatuses_.add(index, value);
          onChanged();
        } else {
          containerStatusesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder addContainerStatuses(
          io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (containerStatusesBuilder_ == null) {
          ensureContainerStatusesIsMutable();
          containerStatuses_.add(builderForValue.build());
          onChanged();
        } else {
          containerStatusesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder addContainerStatuses(
          int index, io.kubernetes.client.proto.V1.ContainerStatus.Builder builderForValue) {
        if (containerStatusesBuilder_ == null) {
          ensureContainerStatusesIsMutable();
          containerStatuses_.add(index, builderForValue.build());
          onChanged();
        } else {
          containerStatusesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder addAllContainerStatuses(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ContainerStatus> values) {
        if (containerStatusesBuilder_ == null) {
          ensureContainerStatusesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, containerStatuses_);
          onChanged();
        } else {
          containerStatusesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder clearContainerStatuses() {
        if (containerStatusesBuilder_ == null) {
          containerStatuses_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000200);
          onChanged();
        } else {
          containerStatusesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public Builder removeContainerStatuses(int index) {
        if (containerStatusesBuilder_ == null) {
          ensureContainerStatusesIsMutable();
          containerStatuses_.remove(index);
          onChanged();
        } else {
          containerStatusesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder getContainerStatusesBuilder(
          int index) {
        return getContainerStatusesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatusOrBuilder getContainerStatusesOrBuilder(
          int index) {
        if (containerStatusesBuilder_ == null) {
          return containerStatuses_.get(index);
        } else {
          return containerStatusesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          getContainerStatusesOrBuilderList() {
        if (containerStatusesBuilder_ != null) {
          return containerStatusesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(containerStatuses_);
        }
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder addContainerStatusesBuilder() {
        return getContainerStatusesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ContainerStatus.Builder addContainerStatusesBuilder(
          int index) {
        return getContainerStatusesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ContainerStatus.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list has one entry per container in the manifest. Each entry is currently the output
       * of `docker inspect`.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ContainerStatus containerStatuses = 8;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ContainerStatus.Builder>
          getContainerStatusesBuilderList() {
        return getContainerStatusesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ContainerStatus,
              io.kubernetes.client.proto.V1.ContainerStatus.Builder,
              io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>
          getContainerStatusesFieldBuilder() {
        if (containerStatusesBuilder_ == null) {
          containerStatusesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ContainerStatus,
                  io.kubernetes.client.proto.V1.ContainerStatus.Builder,
                  io.kubernetes.client.proto.V1.ContainerStatusOrBuilder>(
                  containerStatuses_,
                  ((bitField0_ & 0x00000200) == 0x00000200),
                  getParentForChildren(),
                  isClean());
          containerStatuses_ = null;
        }
        return containerStatusesBuilder_;
      }

      private java.lang.Object qosClass_ = "";
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public boolean hasQosClass() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public java.lang.String getQosClass() {
        java.lang.Object ref = qosClass_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            qosClass_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public com.google.protobuf.ByteString getQosClassBytes() {
        java.lang.Object ref = qosClass_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          qosClass_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public Builder setQosClass(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        qosClass_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public Builder clearQosClass() {
        bitField0_ = (bitField0_ & ~0x00000400);
        qosClass_ = getDefaultInstance().getQosClass();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Quality of Service (QOS) classification assigned to the pod based on resource requirements
       * See PodQOSClass type for available QOS classes
       * More info: https://git.k8s.io/community/contributors/design-proposals/node/resource-qos.md
       * +optional
       * </pre>
       *
       * <code>optional string qosClass = 9;</code>
       */
      public Builder setQosClassBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000400;
        qosClass_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodStatus)
    private static final io.kubernetes.client.proto.V1.PodStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodStatus();
    }

    public static io.kubernetes.client.proto.V1.PodStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodStatus> PARSER =
        new com.google.protobuf.AbstractParser<PodStatus>() {
          @java.lang.Override
          public PodStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodStatusResultOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodStatusResult)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodStatus getStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodStatusResult}
   */
  public static final class PodStatusResult extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodStatusResult)
      PodStatusResultOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodStatusResult.newBuilder() to construct.
    private PodStatusResult(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodStatusResult() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodStatusResult(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodStatusResult_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodStatusResult.class,
              io.kubernetes.client.proto.V1.PodStatusResult.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodStatus status_;
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the pod.
     * This data may not be up to date.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodStatusResult)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodStatusResult other =
          (io.kubernetes.client.proto.V1.PodStatusResult) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodStatusResult prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodStatusResult is a wrapper for PodStatus returned by kubelet that can be encode/decoded
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodStatusResult}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodStatusResult)
        io.kubernetes.client.proto.V1.PodStatusResultOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodStatusResult_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodStatusResult.class,
                io.kubernetes.client.proto.V1.PodStatusResult.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodStatusResult.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatusResult getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodStatusResult.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatusResult build() {
        io.kubernetes.client.proto.V1.PodStatusResult result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodStatusResult buildPartial() {
        io.kubernetes.client.proto.V1.PodStatusResult result =
            new io.kubernetes.client.proto.V1.PodStatusResult(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodStatusResult) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodStatusResult) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodStatusResult other) {
        if (other == io.kubernetes.client.proto.V1.PodStatusResult.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodStatusResult parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodStatusResult) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodStatus,
              io.kubernetes.client.proto.V1.PodStatus.Builder,
              io.kubernetes.client.proto.V1.PodStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PodStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.PodStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.PodStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && status_ != null
              && status_ != io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.PodStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.PodStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the pod.
       * This data may not be up to date.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodStatus status = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodStatus,
              io.kubernetes.client.proto.V1.PodStatus.Builder,
              io.kubernetes.client.proto.V1.PodStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodStatus,
                  io.kubernetes.client.proto.V1.PodStatus.Builder,
                  io.kubernetes.client.proto.V1.PodStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodStatusResult)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodStatusResult)
    private static final io.kubernetes.client.proto.V1.PodStatusResult DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodStatusResult();
    }

    public static io.kubernetes.client.proto.V1.PodStatusResult getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodStatusResult> PARSER =
        new com.google.protobuf.AbstractParser<PodStatusResult>() {
          @java.lang.Override
          public PodStatusResult parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodStatusResult(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodStatusResult> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodStatusResult> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodStatusResult getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodTemplateOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodTemplate)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    boolean hasTemplate();
    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate();
    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PodTemplate describes a template for creating copies of a predefined pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodTemplate}
   */
  public static final class PodTemplate extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodTemplate)
      PodTemplateOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodTemplate.newBuilder() to construct.
    private PodTemplate(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodTemplate() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodTemplate(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodTemplateSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = template_.toBuilder();
                }
                template_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodTemplateSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(template_);
                  template_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodTemplate_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodTemplate_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodTemplate.class,
              io.kubernetes.client.proto.V1.PodTemplate.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int TEMPLATE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodTemplateSpec template_;
    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    public boolean hasTemplate() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate() {
      return template_ == null
          ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
          : template_;
    }
    /**
     *
     *
     * <pre>
     * Template defines the pods that will be created from this pod template.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder() {
      return template_ == null
          ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
          : template_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getTemplate());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getTemplate());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodTemplate)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodTemplate other =
          (io.kubernetes.client.proto.V1.PodTemplate) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasTemplate() == other.hasTemplate());
      if (hasTemplate()) {
        result = result && getTemplate().equals(other.getTemplate());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasTemplate()) {
        hash = (37 * hash) + TEMPLATE_FIELD_NUMBER;
        hash = (53 * hash) + getTemplate().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplate parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodTemplate prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodTemplate describes a template for creating copies of a predefined pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodTemplate}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodTemplate)
        io.kubernetes.client.proto.V1.PodTemplateOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplate_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodTemplate_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodTemplate.class,
                io.kubernetes.client.proto.V1.PodTemplate.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodTemplate.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getTemplateFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (templateBuilder_ == null) {
          template_ = null;
        } else {
          templateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplate_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplate getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplate.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplate build() {
        io.kubernetes.client.proto.V1.PodTemplate result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplate buildPartial() {
        io.kubernetes.client.proto.V1.PodTemplate result =
            new io.kubernetes.client.proto.V1.PodTemplate(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (templateBuilder_ == null) {
          result.template_ = template_;
        } else {
          result.template_ = templateBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodTemplate) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodTemplate) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodTemplate other) {
        if (other == io.kubernetes.client.proto.V1.PodTemplate.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasTemplate()) {
          mergeTemplate(other.getTemplate());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodTemplate parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodTemplate) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodTemplateSpec template_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplateSpec,
              io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
              io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>
          templateBuilder_;
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public boolean hasTemplate() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate() {
        if (templateBuilder_ == null) {
          return template_ == null
              ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
              : template_;
        } else {
          return templateBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public Builder setTemplate(io.kubernetes.client.proto.V1.PodTemplateSpec value) {
        if (templateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          template_ = value;
          onChanged();
        } else {
          templateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public Builder setTemplate(
          io.kubernetes.client.proto.V1.PodTemplateSpec.Builder builderForValue) {
        if (templateBuilder_ == null) {
          template_ = builderForValue.build();
          onChanged();
        } else {
          templateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public Builder mergeTemplate(io.kubernetes.client.proto.V1.PodTemplateSpec value) {
        if (templateBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && template_ != null
              && template_ != io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()) {
            template_ =
                io.kubernetes.client.proto.V1.PodTemplateSpec.newBuilder(template_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            template_ = value;
          }
          onChanged();
        } else {
          templateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public Builder clearTemplate() {
        if (templateBuilder_ == null) {
          template_ = null;
          onChanged();
        } else {
          templateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpec.Builder getTemplateBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getTemplateFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder() {
        if (templateBuilder_ != null) {
          return templateBuilder_.getMessageOrBuilder();
        } else {
          return template_ == null
              ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
              : template_;
        }
      }
      /**
       *
       *
       * <pre>
       * Template defines the pods that will be created from this pod template.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplateSpec,
              io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
              io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>
          getTemplateFieldBuilder() {
        if (templateBuilder_ == null) {
          templateBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodTemplateSpec,
                  io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
                  io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>(
                  getTemplate(), getParentForChildren(), isClean());
          template_ = null;
        }
        return templateBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodTemplate)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodTemplate)
    private static final io.kubernetes.client.proto.V1.PodTemplate DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodTemplate();
    }

    public static io.kubernetes.client.proto.V1.PodTemplate getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodTemplate> PARSER =
        new com.google.protobuf.AbstractParser<PodTemplate>() {
          @java.lang.Override
          public PodTemplate parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodTemplate(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodTemplate> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodTemplate> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodTemplate getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodTemplateListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodTemplateList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.PodTemplate> getItemsList();
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplate getItems(int index);
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.PodTemplateOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplateOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * PodTemplateList is a list of PodTemplates.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodTemplateList}
   */
  public static final class PodTemplateList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodTemplateList)
      PodTemplateListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodTemplateList.newBuilder() to construct.
    private PodTemplateList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodTemplateList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodTemplateList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.PodTemplate>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodTemplate.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodTemplateList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodTemplateList.class,
              io.kubernetes.client.proto.V1.PodTemplateList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.PodTemplate> items_;
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.PodTemplate> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.PodTemplateOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplate getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of pod templates
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplateOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodTemplateList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodTemplateList other =
          (io.kubernetes.client.proto.V1.PodTemplateList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodTemplateList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodTemplateList is a list of PodTemplates.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodTemplateList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodTemplateList)
        io.kubernetes.client.proto.V1.PodTemplateListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodTemplateList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodTemplateList.class,
                io.kubernetes.client.proto.V1.PodTemplateList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodTemplateList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplateList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateList build() {
        io.kubernetes.client.proto.V1.PodTemplateList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateList buildPartial() {
        io.kubernetes.client.proto.V1.PodTemplateList result =
            new io.kubernetes.client.proto.V1.PodTemplateList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodTemplateList) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodTemplateList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodTemplateList other) {
        if (other == io.kubernetes.client.proto.V1.PodTemplateList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodTemplateList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodTemplateList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.PodTemplate> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.PodTemplate>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplate,
              io.kubernetes.client.proto.V1.PodTemplate.Builder,
              io.kubernetes.client.proto.V1.PodTemplateOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodTemplate> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplate getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.PodTemplate value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.PodTemplate.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.PodTemplate value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.PodTemplate value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.PodTemplate.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.PodTemplate.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.PodTemplate> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplate.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.PodTemplateOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplate.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.PodTemplate.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplate.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.PodTemplate.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of pod templates
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.PodTemplate items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.PodTemplate.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplate,
              io.kubernetes.client.proto.V1.PodTemplate.Builder,
              io.kubernetes.client.proto.V1.PodTemplateOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodTemplate,
                  io.kubernetes.client.proto.V1.PodTemplate.Builder,
                  io.kubernetes.client.proto.V1.PodTemplateOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodTemplateList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodTemplateList)
    private static final io.kubernetes.client.proto.V1.PodTemplateList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodTemplateList();
    }

    public static io.kubernetes.client.proto.V1.PodTemplateList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodTemplateList> PARSER =
        new com.google.protobuf.AbstractParser<PodTemplateList>() {
          @java.lang.Override
          public PodTemplateList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodTemplateList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodTemplateList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodTemplateList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodTemplateList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PodTemplateSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PodTemplateSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodSpec getSpec();
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * PodTemplateSpec describes the data a pod should have when created from a template
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PodTemplateSpec}
   */
  public static final class PodTemplateSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PodTemplateSpec)
      PodTemplateSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PodTemplateSpec.newBuilder() to construct.
    private PodTemplateSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PodTemplateSpec() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PodTemplateSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PodTemplateSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PodTemplateSpec.class,
              io.kubernetes.client.proto.V1.PodTemplateSpec.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodSpec spec_;
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodSpec getSpec() {
      return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
    }
    /**
     *
     *
     * <pre>
     * Specification of the desired behavior of the pod.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PodTemplateSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PodTemplateSpec other =
          (io.kubernetes.client.proto.V1.PodTemplateSpec) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PodTemplateSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PodTemplateSpec describes the data a pod should have when created from a template
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PodTemplateSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PodTemplateSpec)
        io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PodTemplateSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PodTemplateSpec.class,
                io.kubernetes.client.proto.V1.PodTemplateSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PodTemplateSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateSpec build() {
        io.kubernetes.client.proto.V1.PodTemplateSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PodTemplateSpec buildPartial() {
        io.kubernetes.client.proto.V1.PodTemplateSpec result =
            new io.kubernetes.client.proto.V1.PodTemplateSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PodTemplateSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.PodTemplateSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PodTemplateSpec other) {
        if (other == io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PodTemplateSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.PodTemplateSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.PodSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSpec,
              io.kubernetes.client.proto.V1.PodSpec.Builder,
              io.kubernetes.client.proto.V1.PodSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PodSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.PodSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.PodSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.PodSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null ? io.kubernetes.client.proto.V1.PodSpec.getDefaultInstance() : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Specification of the desired behavior of the pod.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSpec,
              io.kubernetes.client.proto.V1.PodSpec.Builder,
              io.kubernetes.client.proto.V1.PodSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodSpec,
                  io.kubernetes.client.proto.V1.PodSpec.Builder,
                  io.kubernetes.client.proto.V1.PodSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PodTemplateSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PodTemplateSpec)
    private static final io.kubernetes.client.proto.V1.PodTemplateSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PodTemplateSpec();
    }

    public static io.kubernetes.client.proto.V1.PodTemplateSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PodTemplateSpec> PARSER =
        new com.google.protobuf.AbstractParser<PodTemplateSpec>() {
          @java.lang.Override
          public PodTemplateSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PodTemplateSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PodTemplateSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PodTemplateSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PodTemplateSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PortworxVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PortworxVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    boolean hasVolumeID();
    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    java.lang.String getVolumeID();
    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeIDBytes();

    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * PortworxVolumeSource represents a Portworx volume resource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PortworxVolumeSource}
   */
  public static final class PortworxVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PortworxVolumeSource)
      PortworxVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PortworxVolumeSource.newBuilder() to construct.
    private PortworxVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PortworxVolumeSource() {
      volumeID_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PortworxVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeID_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PortworxVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PortworxVolumeSource.class,
              io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMEID_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeID_;
    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public boolean hasVolumeID() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public java.lang.String getVolumeID() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeID uniquely identifies a Portworx volume
     * </pre>
     *
     * <code>optional string volumeID = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeIDBytes() {
      java.lang.Object ref = volumeID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * FSType represents the filesystem type to mount
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeID_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PortworxVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PortworxVolumeSource other =
          (io.kubernetes.client.proto.V1.PortworxVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeID() == other.hasVolumeID());
      if (hasVolumeID()) {
        result = result && getVolumeID().equals(other.getVolumeID());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeID()) {
        hash = (37 * hash) + VOLUMEID_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeID().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PortworxVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * PortworxVolumeSource represents a Portworx volume resource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PortworxVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PortworxVolumeSource)
        io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PortworxVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PortworxVolumeSource.class,
                io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PortworxVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeID_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PortworxVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PortworxVolumeSource build() {
        io.kubernetes.client.proto.V1.PortworxVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PortworxVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.PortworxVolumeSource result =
            new io.kubernetes.client.proto.V1.PortworxVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeID_ = volumeID_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PortworxVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.PortworxVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PortworxVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeID()) {
          bitField0_ |= 0x00000001;
          volumeID_ = other.volumeID_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PortworxVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PortworxVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeID_ = "";
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public boolean hasVolumeID() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public java.lang.String getVolumeID() {
        java.lang.Object ref = volumeID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeIDBytes() {
        java.lang.Object ref = volumeID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder clearVolumeID() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeID_ = getDefaultInstance().getVolumeID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeID uniquely identifies a Portworx volume
       * </pre>
       *
       * <code>optional string volumeID = 1;</code>
       */
      public Builder setVolumeIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeID_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * FSType represents the filesystem type to mount
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified.
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PortworxVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PortworxVolumeSource)
    private static final io.kubernetes.client.proto.V1.PortworxVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PortworxVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.PortworxVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PortworxVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<PortworxVolumeSource>() {
          @java.lang.Override
          public PortworxVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PortworxVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PortworxVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PortworxVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PortworxVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PreconditionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Preconditions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    boolean hasUid();
    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    java.lang.String getUid();
    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    com.google.protobuf.ByteString getUidBytes();
  }
  /**
   *
   *
   * <pre>
   * Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
   * +k8s:openapi-gen=false
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Preconditions}
   */
  public static final class Preconditions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Preconditions)
      PreconditionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Preconditions.newBuilder() to construct.
    private Preconditions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Preconditions() {
      uid_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Preconditions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                uid_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_Preconditions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Preconditions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Preconditions.class,
              io.kubernetes.client.proto.V1.Preconditions.Builder.class);
    }

    private int bitField0_;
    public static final int UID_FIELD_NUMBER = 1;
    private volatile java.lang.Object uid_;
    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    public java.lang.String getUid() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          uid_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Specifies the target UID.
     * +optional
     * </pre>
     *
     * <code>optional string uid = 1;</code>
     */
    public com.google.protobuf.ByteString getUidBytes() {
      java.lang.Object ref = uid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        uid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, uid_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, uid_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Preconditions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Preconditions other =
          (io.kubernetes.client.proto.V1.Preconditions) obj;

      boolean result = true;
      result = result && (hasUid() == other.hasUid());
      if (hasUid()) {
        result = result && getUid().equals(other.getUid());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasUid()) {
        hash = (37 * hash) + UID_FIELD_NUMBER;
        hash = (53 * hash) + getUid().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Preconditions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Preconditions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
     * +k8s:openapi-gen=false
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Preconditions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Preconditions)
        io.kubernetes.client.proto.V1.PreconditionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Preconditions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Preconditions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Preconditions.class,
                io.kubernetes.client.proto.V1.Preconditions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Preconditions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        uid_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Preconditions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Preconditions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Preconditions build() {
        io.kubernetes.client.proto.V1.Preconditions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Preconditions buildPartial() {
        io.kubernetes.client.proto.V1.Preconditions result =
            new io.kubernetes.client.proto.V1.Preconditions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.uid_ = uid_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Preconditions) {
          return mergeFrom((io.kubernetes.client.proto.V1.Preconditions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Preconditions other) {
        if (other == io.kubernetes.client.proto.V1.Preconditions.getDefaultInstance()) return this;
        if (other.hasUid()) {
          bitField0_ |= 0x00000001;
          uid_ = other.uid_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Preconditions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Preconditions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object uid_ = "";
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public java.lang.String getUid() {
        java.lang.Object ref = uid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            uid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public com.google.protobuf.ByteString getUidBytes() {
        java.lang.Object ref = uid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          uid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public Builder setUid(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = getDefaultInstance().getUid();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the target UID.
       * +optional
       * </pre>
       *
       * <code>optional string uid = 1;</code>
       */
      public Builder setUidBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        uid_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Preconditions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Preconditions)
    private static final io.kubernetes.client.proto.V1.Preconditions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Preconditions();
    }

    public static io.kubernetes.client.proto.V1.Preconditions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Preconditions> PARSER =
        new com.google.protobuf.AbstractParser<Preconditions>() {
          @java.lang.Override
          public Preconditions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Preconditions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Preconditions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Preconditions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Preconditions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PreferAvoidPodsEntryOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PreferAvoidPodsEntry)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    boolean hasPodSignature();
    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    io.kubernetes.client.proto.V1.PodSignature getPodSignature();
    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    io.kubernetes.client.proto.V1.PodSignatureOrBuilder getPodSignatureOrBuilder();

    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    boolean hasEvictionTime();
    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    io.kubernetes.client.proto.Meta.Time getEvictionTime();
    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getEvictionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * Describes a class of pods that should avoid this node.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PreferAvoidPodsEntry}
   */
  public static final class PreferAvoidPodsEntry extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PreferAvoidPodsEntry)
      PreferAvoidPodsEntryOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PreferAvoidPodsEntry.newBuilder() to construct.
    private PreferAvoidPodsEntry(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PreferAvoidPodsEntry() {
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PreferAvoidPodsEntry(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.PodSignature.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = podSignature_.toBuilder();
                }
                podSignature_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodSignature.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(podSignature_);
                  podSignature_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = evictionTime_.toBuilder();
                }
                evictionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(evictionTime_);
                  evictionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                reason_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.class,
              io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder.class);
    }

    private int bitField0_;
    public static final int PODSIGNATURE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.PodSignature podSignature_;
    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    public boolean hasPodSignature() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    public io.kubernetes.client.proto.V1.PodSignature getPodSignature() {
      return podSignature_ == null
          ? io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()
          : podSignature_;
    }
    /**
     *
     *
     * <pre>
     * The class of pods.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
     */
    public io.kubernetes.client.proto.V1.PodSignatureOrBuilder getPodSignatureOrBuilder() {
      return podSignature_ == null
          ? io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()
          : podSignature_;
    }

    public static final int EVICTIONTIME_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.Meta.Time evictionTime_;
    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    public boolean hasEvictionTime() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getEvictionTime() {
      return evictionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : evictionTime_;
    }
    /**
     *
     *
     * <pre>
     * Time at which this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getEvictionTimeOrBuilder() {
      return evictionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : evictionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 3;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * (brief) reason why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 3;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 4;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Human readable message indicating why this entry was added to the list.
     * +optional
     * </pre>
     *
     * <code>optional string message = 4;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getPodSignature());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getEvictionTime());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPodSignature());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEvictionTime());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, reason_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PreferAvoidPodsEntry)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PreferAvoidPodsEntry other =
          (io.kubernetes.client.proto.V1.PreferAvoidPodsEntry) obj;

      boolean result = true;
      result = result && (hasPodSignature() == other.hasPodSignature());
      if (hasPodSignature()) {
        result = result && getPodSignature().equals(other.getPodSignature());
      }
      result = result && (hasEvictionTime() == other.hasEvictionTime());
      if (hasEvictionTime()) {
        result = result && getEvictionTime().equals(other.getEvictionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPodSignature()) {
        hash = (37 * hash) + PODSIGNATURE_FIELD_NUMBER;
        hash = (53 * hash) + getPodSignature().hashCode();
      }
      if (hasEvictionTime()) {
        hash = (37 * hash) + EVICTIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getEvictionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.PreferAvoidPodsEntry prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Describes a class of pods that should avoid this node.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PreferAvoidPodsEntry}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PreferAvoidPodsEntry)
        io.kubernetes.client.proto.V1.PreferAvoidPodsEntryOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.class,
                io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPodSignatureFieldBuilder();
          getEvictionTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (podSignatureBuilder_ == null) {
          podSignature_ = null;
        } else {
          podSignatureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (evictionTimeBuilder_ == null) {
          evictionTime_ = null;
        } else {
          evictionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry build() {
        io.kubernetes.client.proto.V1.PreferAvoidPodsEntry result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry buildPartial() {
        io.kubernetes.client.proto.V1.PreferAvoidPodsEntry result =
            new io.kubernetes.client.proto.V1.PreferAvoidPodsEntry(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (podSignatureBuilder_ == null) {
          result.podSignature_ = podSignature_;
        } else {
          result.podSignature_ = podSignatureBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (evictionTimeBuilder_ == null) {
          result.evictionTime_ = evictionTime_;
        } else {
          result.evictionTime_ = evictionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PreferAvoidPodsEntry) {
          return mergeFrom((io.kubernetes.client.proto.V1.PreferAvoidPodsEntry) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PreferAvoidPodsEntry other) {
        if (other == io.kubernetes.client.proto.V1.PreferAvoidPodsEntry.getDefaultInstance())
          return this;
        if (other.hasPodSignature()) {
          mergePodSignature(other.getPodSignature());
        }
        if (other.hasEvictionTime()) {
          mergeEvictionTime(other.getEvictionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000004;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000008;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PreferAvoidPodsEntry parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PreferAvoidPodsEntry) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.PodSignature podSignature_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSignature,
              io.kubernetes.client.proto.V1.PodSignature.Builder,
              io.kubernetes.client.proto.V1.PodSignatureOrBuilder>
          podSignatureBuilder_;
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public boolean hasPodSignature() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PodSignature getPodSignature() {
        if (podSignatureBuilder_ == null) {
          return podSignature_ == null
              ? io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()
              : podSignature_;
        } else {
          return podSignatureBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public Builder setPodSignature(io.kubernetes.client.proto.V1.PodSignature value) {
        if (podSignatureBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          podSignature_ = value;
          onChanged();
        } else {
          podSignatureBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public Builder setPodSignature(
          io.kubernetes.client.proto.V1.PodSignature.Builder builderForValue) {
        if (podSignatureBuilder_ == null) {
          podSignature_ = builderForValue.build();
          onChanged();
        } else {
          podSignatureBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public Builder mergePodSignature(io.kubernetes.client.proto.V1.PodSignature value) {
        if (podSignatureBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && podSignature_ != null
              && podSignature_ != io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()) {
            podSignature_ =
                io.kubernetes.client.proto.V1.PodSignature.newBuilder(podSignature_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            podSignature_ = value;
          }
          onChanged();
        } else {
          podSignatureBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public Builder clearPodSignature() {
        if (podSignatureBuilder_ == null) {
          podSignature_ = null;
          onChanged();
        } else {
          podSignatureBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PodSignature.Builder getPodSignatureBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPodSignatureFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      public io.kubernetes.client.proto.V1.PodSignatureOrBuilder getPodSignatureOrBuilder() {
        if (podSignatureBuilder_ != null) {
          return podSignatureBuilder_.getMessageOrBuilder();
        } else {
          return podSignature_ == null
              ? io.kubernetes.client.proto.V1.PodSignature.getDefaultInstance()
              : podSignature_;
        }
      }
      /**
       *
       *
       * <pre>
       * The class of pods.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodSignature podSignature = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodSignature,
              io.kubernetes.client.proto.V1.PodSignature.Builder,
              io.kubernetes.client.proto.V1.PodSignatureOrBuilder>
          getPodSignatureFieldBuilder() {
        if (podSignatureBuilder_ == null) {
          podSignatureBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodSignature,
                  io.kubernetes.client.proto.V1.PodSignature.Builder,
                  io.kubernetes.client.proto.V1.PodSignatureOrBuilder>(
                  getPodSignature(), getParentForChildren(), isClean());
          podSignature_ = null;
        }
        return podSignatureBuilder_;
      }

      private io.kubernetes.client.proto.Meta.Time evictionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          evictionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public boolean hasEvictionTime() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getEvictionTime() {
        if (evictionTimeBuilder_ == null) {
          return evictionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : evictionTime_;
        } else {
          return evictionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public Builder setEvictionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (evictionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          evictionTime_ = value;
          onChanged();
        } else {
          evictionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public Builder setEvictionTime(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (evictionTimeBuilder_ == null) {
          evictionTime_ = builderForValue.build();
          onChanged();
        } else {
          evictionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public Builder mergeEvictionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (evictionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && evictionTime_ != null
              && evictionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            evictionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(evictionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            evictionTime_ = value;
          }
          onChanged();
        } else {
          evictionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public Builder clearEvictionTime() {
        if (evictionTimeBuilder_ == null) {
          evictionTime_ = null;
          onChanged();
        } else {
          evictionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getEvictionTimeBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEvictionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getEvictionTimeOrBuilder() {
        if (evictionTimeBuilder_ != null) {
          return evictionTimeBuilder_.getMessageOrBuilder();
        } else {
          return evictionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : evictionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * Time at which this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time evictionTime = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getEvictionTimeFieldBuilder() {
        if (evictionTimeBuilder_ == null) {
          evictionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getEvictionTime(), getParentForChildren(), isClean());
          evictionTime_ = null;
        }
        return evictionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * (brief) reason why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 3;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000008);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Human readable message indicating why this entry was added to the list.
       * +optional
       * </pre>
       *
       * <code>optional string message = 4;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PreferAvoidPodsEntry)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PreferAvoidPodsEntry)
    private static final io.kubernetes.client.proto.V1.PreferAvoidPodsEntry DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PreferAvoidPodsEntry();
    }

    public static io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PreferAvoidPodsEntry> PARSER =
        new com.google.protobuf.AbstractParser<PreferAvoidPodsEntry>() {
          @java.lang.Override
          public PreferAvoidPodsEntry parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PreferAvoidPodsEntry(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PreferAvoidPodsEntry> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PreferAvoidPodsEntry> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PreferAvoidPodsEntry getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface PreferredSchedulingTermOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.PreferredSchedulingTerm)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    boolean hasWeight();
    /**
     *
     *
     * <pre>
     * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    int getWeight();

    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    boolean hasPreference();
    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorTerm getPreference();
    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getPreferenceOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * An empty preferred scheduling term matches all objects with implicit weight 0
   * (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.PreferredSchedulingTerm}
   */
  public static final class PreferredSchedulingTerm extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.PreferredSchedulingTerm)
      PreferredSchedulingTermOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use PreferredSchedulingTerm.newBuilder() to construct.
    private PreferredSchedulingTerm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private PreferredSchedulingTerm() {
      weight_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private PreferredSchedulingTerm(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                weight_ = input.readInt32();
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = preference_.toBuilder();
                }
                preference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelectorTerm.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(preference_);
                  preference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm.class,
              io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder.class);
    }

    private int bitField0_;
    public static final int WEIGHT_FIELD_NUMBER = 1;
    private int weight_;
    /**
     *
     *
     * <pre>
     * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    public boolean hasWeight() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    public int getWeight() {
      return weight_;
    }

    public static final int PREFERENCE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.NodeSelectorTerm preference_;
    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    public boolean hasPreference() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorTerm getPreference() {
      return preference_ == null
          ? io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance()
          : preference_;
    }
    /**
     *
     *
     * <pre>
     * A node selector term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getPreferenceOrBuilder() {
      return preference_ == null
          ? io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance()
          : preference_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, weight_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPreference());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, weight_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPreference());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.PreferredSchedulingTerm)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.PreferredSchedulingTerm other =
          (io.kubernetes.client.proto.V1.PreferredSchedulingTerm) obj;

      boolean result = true;
      result = result && (hasWeight() == other.hasWeight());
      if (hasWeight()) {
        result = result && (getWeight() == other.getWeight());
      }
      result = result && (hasPreference() == other.hasPreference());
      if (hasPreference()) {
        result = result && getPreference().equals(other.getPreference());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasWeight()) {
        hash = (37 * hash) + WEIGHT_FIELD_NUMBER;
        hash = (53 * hash) + getWeight();
      }
      if (hasPreference()) {
        hash = (37 * hash) + PREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getPreference().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.PreferredSchedulingTerm prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * An empty preferred scheduling term matches all objects with implicit weight 0
     * (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op).
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.PreferredSchedulingTerm}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.PreferredSchedulingTerm)
        io.kubernetes.client.proto.V1.PreferredSchedulingTermOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.PreferredSchedulingTerm.class,
                io.kubernetes.client.proto.V1.PreferredSchedulingTerm.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.PreferredSchedulingTerm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPreferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        weight_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (preferenceBuilder_ == null) {
          preference_ = null;
        } else {
          preferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.PreferredSchedulingTerm.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm build() {
        io.kubernetes.client.proto.V1.PreferredSchedulingTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.PreferredSchedulingTerm buildPartial() {
        io.kubernetes.client.proto.V1.PreferredSchedulingTerm result =
            new io.kubernetes.client.proto.V1.PreferredSchedulingTerm(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.weight_ = weight_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (preferenceBuilder_ == null) {
          result.preference_ = preference_;
        } else {
          result.preference_ = preferenceBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.PreferredSchedulingTerm) {
          return mergeFrom((io.kubernetes.client.proto.V1.PreferredSchedulingTerm) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.PreferredSchedulingTerm other) {
        if (other == io.kubernetes.client.proto.V1.PreferredSchedulingTerm.getDefaultInstance())
          return this;
        if (other.hasWeight()) {
          setWeight(other.getWeight());
        }
        if (other.hasPreference()) {
          mergePreference(other.getPreference());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.PreferredSchedulingTerm parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.PreferredSchedulingTerm) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int weight_;
      /**
       *
       *
       * <pre>
       * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public boolean hasWeight() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public int getWeight() {
        return weight_;
      }
      /**
       *
       *
       * <pre>
       * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public Builder setWeight(int value) {
        bitField0_ |= 0x00000001;
        weight_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Weight associated with matching the corresponding nodeSelectorTerm, in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public Builder clearWeight() {
        bitField0_ = (bitField0_ & ~0x00000001);
        weight_ = 0;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.NodeSelectorTerm preference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorTerm,
              io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
          preferenceBuilder_;
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public boolean hasPreference() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm getPreference() {
        if (preferenceBuilder_ == null) {
          return preference_ == null
              ? io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance()
              : preference_;
        } else {
          return preferenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public Builder setPreference(io.kubernetes.client.proto.V1.NodeSelectorTerm value) {
        if (preferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          preference_ = value;
          onChanged();
        } else {
          preferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public Builder setPreference(
          io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder builderForValue) {
        if (preferenceBuilder_ == null) {
          preference_ = builderForValue.build();
          onChanged();
        } else {
          preferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public Builder mergePreference(io.kubernetes.client.proto.V1.NodeSelectorTerm value) {
        if (preferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && preference_ != null
              && preference_
                  != io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance()) {
            preference_ =
                io.kubernetes.client.proto.V1.NodeSelectorTerm.newBuilder(preference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            preference_ = value;
          }
          onChanged();
        } else {
          preferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public Builder clearPreference() {
        if (preferenceBuilder_ == null) {
          preference_ = null;
          onChanged();
        } else {
          preferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder getPreferenceBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPreferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder getPreferenceOrBuilder() {
        if (preferenceBuilder_ != null) {
          return preferenceBuilder_.getMessageOrBuilder();
        } else {
          return preference_ == null
              ? io.kubernetes.client.proto.V1.NodeSelectorTerm.getDefaultInstance()
              : preference_;
        }
      }
      /**
       *
       *
       * <pre>
       * A node selector term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelectorTerm preference = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelectorTerm,
              io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>
          getPreferenceFieldBuilder() {
        if (preferenceBuilder_ == null) {
          preferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelectorTerm,
                  io.kubernetes.client.proto.V1.NodeSelectorTerm.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorTermOrBuilder>(
                  getPreference(), getParentForChildren(), isClean());
          preference_ = null;
        }
        return preferenceBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.PreferredSchedulingTerm)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.PreferredSchedulingTerm)
    private static final io.kubernetes.client.proto.V1.PreferredSchedulingTerm DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.PreferredSchedulingTerm();
    }

    public static io.kubernetes.client.proto.V1.PreferredSchedulingTerm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<PreferredSchedulingTerm> PARSER =
        new com.google.protobuf.AbstractParser<PreferredSchedulingTerm>() {
          @java.lang.Override
          public PreferredSchedulingTerm parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new PreferredSchedulingTerm(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<PreferredSchedulingTerm> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<PreferredSchedulingTerm> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.PreferredSchedulingTerm getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ProbeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Probe)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    boolean hasHandler();
    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    io.kubernetes.client.proto.V1.Handler getHandler();
    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    io.kubernetes.client.proto.V1.HandlerOrBuilder getHandlerOrBuilder();

    /**
     *
     *
     * <pre>
     * Number of seconds after the container has started before liveness probes are initiated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 initialDelaySeconds = 2;</code>
     */
    boolean hasInitialDelaySeconds();
    /**
     *
     *
     * <pre>
     * Number of seconds after the container has started before liveness probes are initiated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 initialDelaySeconds = 2;</code>
     */
    int getInitialDelaySeconds();

    /**
     *
     *
     * <pre>
     * Number of seconds after which the probe times out.
     * Defaults to 1 second. Minimum value is 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 3;</code>
     */
    boolean hasTimeoutSeconds();
    /**
     *
     *
     * <pre>
     * Number of seconds after which the probe times out.
     * Defaults to 1 second. Minimum value is 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 3;</code>
     */
    int getTimeoutSeconds();

    /**
     *
     *
     * <pre>
     * How often (in seconds) to perform the probe.
     * Default to 10 seconds. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 periodSeconds = 4;</code>
     */
    boolean hasPeriodSeconds();
    /**
     *
     *
     * <pre>
     * How often (in seconds) to perform the probe.
     * Default to 10 seconds. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 periodSeconds = 4;</code>
     */
    int getPeriodSeconds();

    /**
     *
     *
     * <pre>
     * Minimum consecutive successes for the probe to be considered successful after having failed.
     * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 successThreshold = 5;</code>
     */
    boolean hasSuccessThreshold();
    /**
     *
     *
     * <pre>
     * Minimum consecutive successes for the probe to be considered successful after having failed.
     * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 successThreshold = 5;</code>
     */
    int getSuccessThreshold();

    /**
     *
     *
     * <pre>
     * Minimum consecutive failures for the probe to be considered failed after having succeeded.
     * Defaults to 3. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 failureThreshold = 6;</code>
     */
    boolean hasFailureThreshold();
    /**
     *
     *
     * <pre>
     * Minimum consecutive failures for the probe to be considered failed after having succeeded.
     * Defaults to 3. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 failureThreshold = 6;</code>
     */
    int getFailureThreshold();
  }
  /**
   *
   *
   * <pre>
   * Probe describes a health check to be performed against a container to determine whether it is
   * alive or ready to receive traffic.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Probe}
   */
  public static final class Probe extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Probe)
      ProbeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Probe.newBuilder() to construct.
    private Probe(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Probe() {
      initialDelaySeconds_ = 0;
      timeoutSeconds_ = 0;
      periodSeconds_ = 0;
      successThreshold_ = 0;
      failureThreshold_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Probe(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.Handler.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = handler_.toBuilder();
                }
                handler_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Handler.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(handler_);
                  handler_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                initialDelaySeconds_ = input.readInt32();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                timeoutSeconds_ = input.readInt32();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                periodSeconds_ = input.readInt32();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                successThreshold_ = input.readInt32();
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000020;
                failureThreshold_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Probe_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Probe_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Probe.class,
              io.kubernetes.client.proto.V1.Probe.Builder.class);
    }

    private int bitField0_;
    public static final int HANDLER_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.Handler handler_;
    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    public boolean hasHandler() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    public io.kubernetes.client.proto.V1.Handler getHandler() {
      return handler_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : handler_;
    }
    /**
     *
     *
     * <pre>
     * The action taken to determine the health of a container
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
     */
    public io.kubernetes.client.proto.V1.HandlerOrBuilder getHandlerOrBuilder() {
      return handler_ == null
          ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
          : handler_;
    }

    public static final int INITIALDELAYSECONDS_FIELD_NUMBER = 2;
    private int initialDelaySeconds_;
    /**
     *
     *
     * <pre>
     * Number of seconds after the container has started before liveness probes are initiated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 initialDelaySeconds = 2;</code>
     */
    public boolean hasInitialDelaySeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Number of seconds after the container has started before liveness probes are initiated.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 initialDelaySeconds = 2;</code>
     */
    public int getInitialDelaySeconds() {
      return initialDelaySeconds_;
    }

    public static final int TIMEOUTSECONDS_FIELD_NUMBER = 3;
    private int timeoutSeconds_;
    /**
     *
     *
     * <pre>
     * Number of seconds after which the probe times out.
     * Defaults to 1 second. Minimum value is 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 3;</code>
     */
    public boolean hasTimeoutSeconds() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Number of seconds after which the probe times out.
     * Defaults to 1 second. Minimum value is 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
     * +optional
     * </pre>
     *
     * <code>optional int32 timeoutSeconds = 3;</code>
     */
    public int getTimeoutSeconds() {
      return timeoutSeconds_;
    }

    public static final int PERIODSECONDS_FIELD_NUMBER = 4;
    private int periodSeconds_;
    /**
     *
     *
     * <pre>
     * How often (in seconds) to perform the probe.
     * Default to 10 seconds. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 periodSeconds = 4;</code>
     */
    public boolean hasPeriodSeconds() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * How often (in seconds) to perform the probe.
     * Default to 10 seconds. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 periodSeconds = 4;</code>
     */
    public int getPeriodSeconds() {
      return periodSeconds_;
    }

    public static final int SUCCESSTHRESHOLD_FIELD_NUMBER = 5;
    private int successThreshold_;
    /**
     *
     *
     * <pre>
     * Minimum consecutive successes for the probe to be considered successful after having failed.
     * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 successThreshold = 5;</code>
     */
    public boolean hasSuccessThreshold() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Minimum consecutive successes for the probe to be considered successful after having failed.
     * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 successThreshold = 5;</code>
     */
    public int getSuccessThreshold() {
      return successThreshold_;
    }

    public static final int FAILURETHRESHOLD_FIELD_NUMBER = 6;
    private int failureThreshold_;
    /**
     *
     *
     * <pre>
     * Minimum consecutive failures for the probe to be considered failed after having succeeded.
     * Defaults to 3. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 failureThreshold = 6;</code>
     */
    public boolean hasFailureThreshold() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Minimum consecutive failures for the probe to be considered failed after having succeeded.
     * Defaults to 3. Minimum value is 1.
     * +optional
     * </pre>
     *
     * <code>optional int32 failureThreshold = 6;</code>
     */
    public int getFailureThreshold() {
      return failureThreshold_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getHandler());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, initialDelaySeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, timeoutSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, periodSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, successThreshold_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeInt32(6, failureThreshold_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getHandler());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, initialDelaySeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, timeoutSeconds_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, periodSeconds_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, successThreshold_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(6, failureThreshold_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Probe)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Probe other = (io.kubernetes.client.proto.V1.Probe) obj;

      boolean result = true;
      result = result && (hasHandler() == other.hasHandler());
      if (hasHandler()) {
        result = result && getHandler().equals(other.getHandler());
      }
      result = result && (hasInitialDelaySeconds() == other.hasInitialDelaySeconds());
      if (hasInitialDelaySeconds()) {
        result = result && (getInitialDelaySeconds() == other.getInitialDelaySeconds());
      }
      result = result && (hasTimeoutSeconds() == other.hasTimeoutSeconds());
      if (hasTimeoutSeconds()) {
        result = result && (getTimeoutSeconds() == other.getTimeoutSeconds());
      }
      result = result && (hasPeriodSeconds() == other.hasPeriodSeconds());
      if (hasPeriodSeconds()) {
        result = result && (getPeriodSeconds() == other.getPeriodSeconds());
      }
      result = result && (hasSuccessThreshold() == other.hasSuccessThreshold());
      if (hasSuccessThreshold()) {
        result = result && (getSuccessThreshold() == other.getSuccessThreshold());
      }
      result = result && (hasFailureThreshold() == other.hasFailureThreshold());
      if (hasFailureThreshold()) {
        result = result && (getFailureThreshold() == other.getFailureThreshold());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHandler()) {
        hash = (37 * hash) + HANDLER_FIELD_NUMBER;
        hash = (53 * hash) + getHandler().hashCode();
      }
      if (hasInitialDelaySeconds()) {
        hash = (37 * hash) + INITIALDELAYSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getInitialDelaySeconds();
      }
      if (hasTimeoutSeconds()) {
        hash = (37 * hash) + TIMEOUTSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getTimeoutSeconds();
      }
      if (hasPeriodSeconds()) {
        hash = (37 * hash) + PERIODSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getPeriodSeconds();
      }
      if (hasSuccessThreshold()) {
        hash = (37 * hash) + SUCCESSTHRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + getSuccessThreshold();
      }
      if (hasFailureThreshold()) {
        hash = (37 * hash) + FAILURETHRESHOLD_FIELD_NUMBER;
        hash = (53 * hash) + getFailureThreshold();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Probe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Probe parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Probe parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Probe prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Probe describes a health check to be performed against a container to determine whether it is
     * alive or ready to receive traffic.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Probe}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Probe)
        io.kubernetes.client.proto.V1.ProbeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Probe_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Probe_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Probe.class,
                io.kubernetes.client.proto.V1.Probe.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Probe.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getHandlerFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (handlerBuilder_ == null) {
          handler_ = null;
        } else {
          handlerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        initialDelaySeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        timeoutSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        periodSeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        successThreshold_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        failureThreshold_ = 0;
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Probe_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Probe getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Probe.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Probe build() {
        io.kubernetes.client.proto.V1.Probe result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Probe buildPartial() {
        io.kubernetes.client.proto.V1.Probe result = new io.kubernetes.client.proto.V1.Probe(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (handlerBuilder_ == null) {
          result.handler_ = handler_;
        } else {
          result.handler_ = handlerBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.initialDelaySeconds_ = initialDelaySeconds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.timeoutSeconds_ = timeoutSeconds_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.periodSeconds_ = periodSeconds_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.successThreshold_ = successThreshold_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.failureThreshold_ = failureThreshold_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Probe) {
          return mergeFrom((io.kubernetes.client.proto.V1.Probe) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Probe other) {
        if (other == io.kubernetes.client.proto.V1.Probe.getDefaultInstance()) return this;
        if (other.hasHandler()) {
          mergeHandler(other.getHandler());
        }
        if (other.hasInitialDelaySeconds()) {
          setInitialDelaySeconds(other.getInitialDelaySeconds());
        }
        if (other.hasTimeoutSeconds()) {
          setTimeoutSeconds(other.getTimeoutSeconds());
        }
        if (other.hasPeriodSeconds()) {
          setPeriodSeconds(other.getPeriodSeconds());
        }
        if (other.hasSuccessThreshold()) {
          setSuccessThreshold(other.getSuccessThreshold());
        }
        if (other.hasFailureThreshold()) {
          setFailureThreshold(other.getFailureThreshold());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Probe parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Probe) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.Handler handler_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          handlerBuilder_;
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public boolean hasHandler() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Handler getHandler() {
        if (handlerBuilder_ == null) {
          return handler_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : handler_;
        } else {
          return handlerBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public Builder setHandler(io.kubernetes.client.proto.V1.Handler value) {
        if (handlerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          handler_ = value;
          onChanged();
        } else {
          handlerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public Builder setHandler(io.kubernetes.client.proto.V1.Handler.Builder builderForValue) {
        if (handlerBuilder_ == null) {
          handler_ = builderForValue.build();
          onChanged();
        } else {
          handlerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public Builder mergeHandler(io.kubernetes.client.proto.V1.Handler value) {
        if (handlerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && handler_ != null
              && handler_ != io.kubernetes.client.proto.V1.Handler.getDefaultInstance()) {
            handler_ =
                io.kubernetes.client.proto.V1.Handler.newBuilder(handler_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            handler_ = value;
          }
          onChanged();
        } else {
          handlerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public Builder clearHandler() {
        if (handlerBuilder_ == null) {
          handler_ = null;
          onChanged();
        } else {
          handlerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Handler.Builder getHandlerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHandlerFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      public io.kubernetes.client.proto.V1.HandlerOrBuilder getHandlerOrBuilder() {
        if (handlerBuilder_ != null) {
          return handlerBuilder_.getMessageOrBuilder();
        } else {
          return handler_ == null
              ? io.kubernetes.client.proto.V1.Handler.getDefaultInstance()
              : handler_;
        }
      }
      /**
       *
       *
       * <pre>
       * The action taken to determine the health of a container
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Handler handler = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Handler,
              io.kubernetes.client.proto.V1.Handler.Builder,
              io.kubernetes.client.proto.V1.HandlerOrBuilder>
          getHandlerFieldBuilder() {
        if (handlerBuilder_ == null) {
          handlerBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Handler,
                  io.kubernetes.client.proto.V1.Handler.Builder,
                  io.kubernetes.client.proto.V1.HandlerOrBuilder>(
                  getHandler(), getParentForChildren(), isClean());
          handler_ = null;
        }
        return handlerBuilder_;
      }

      private int initialDelaySeconds_;
      /**
       *
       *
       * <pre>
       * Number of seconds after the container has started before liveness probes are initiated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 initialDelaySeconds = 2;</code>
       */
      public boolean hasInitialDelaySeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after the container has started before liveness probes are initiated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 initialDelaySeconds = 2;</code>
       */
      public int getInitialDelaySeconds() {
        return initialDelaySeconds_;
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after the container has started before liveness probes are initiated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 initialDelaySeconds = 2;</code>
       */
      public Builder setInitialDelaySeconds(int value) {
        bitField0_ |= 0x00000002;
        initialDelaySeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after the container has started before liveness probes are initiated.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 initialDelaySeconds = 2;</code>
       */
      public Builder clearInitialDelaySeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        initialDelaySeconds_ = 0;
        onChanged();
        return this;
      }

      private int timeoutSeconds_;
      /**
       *
       *
       * <pre>
       * Number of seconds after which the probe times out.
       * Defaults to 1 second. Minimum value is 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 3;</code>
       */
      public boolean hasTimeoutSeconds() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after which the probe times out.
       * Defaults to 1 second. Minimum value is 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 3;</code>
       */
      public int getTimeoutSeconds() {
        return timeoutSeconds_;
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after which the probe times out.
       * Defaults to 1 second. Minimum value is 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 3;</code>
       */
      public Builder setTimeoutSeconds(int value) {
        bitField0_ |= 0x00000004;
        timeoutSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number of seconds after which the probe times out.
       * Defaults to 1 second. Minimum value is 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
       * +optional
       * </pre>
       *
       * <code>optional int32 timeoutSeconds = 3;</code>
       */
      public Builder clearTimeoutSeconds() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timeoutSeconds_ = 0;
        onChanged();
        return this;
      }

      private int periodSeconds_;
      /**
       *
       *
       * <pre>
       * How often (in seconds) to perform the probe.
       * Default to 10 seconds. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 periodSeconds = 4;</code>
       */
      public boolean hasPeriodSeconds() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * How often (in seconds) to perform the probe.
       * Default to 10 seconds. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 periodSeconds = 4;</code>
       */
      public int getPeriodSeconds() {
        return periodSeconds_;
      }
      /**
       *
       *
       * <pre>
       * How often (in seconds) to perform the probe.
       * Default to 10 seconds. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 periodSeconds = 4;</code>
       */
      public Builder setPeriodSeconds(int value) {
        bitField0_ |= 0x00000008;
        periodSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * How often (in seconds) to perform the probe.
       * Default to 10 seconds. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 periodSeconds = 4;</code>
       */
      public Builder clearPeriodSeconds() {
        bitField0_ = (bitField0_ & ~0x00000008);
        periodSeconds_ = 0;
        onChanged();
        return this;
      }

      private int successThreshold_;
      /**
       *
       *
       * <pre>
       * Minimum consecutive successes for the probe to be considered successful after having failed.
       * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 successThreshold = 5;</code>
       */
      public boolean hasSuccessThreshold() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive successes for the probe to be considered successful after having failed.
       * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 successThreshold = 5;</code>
       */
      public int getSuccessThreshold() {
        return successThreshold_;
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive successes for the probe to be considered successful after having failed.
       * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 successThreshold = 5;</code>
       */
      public Builder setSuccessThreshold(int value) {
        bitField0_ |= 0x00000010;
        successThreshold_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive successes for the probe to be considered successful after having failed.
       * Defaults to 1. Must be 1 for liveness. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 successThreshold = 5;</code>
       */
      public Builder clearSuccessThreshold() {
        bitField0_ = (bitField0_ & ~0x00000010);
        successThreshold_ = 0;
        onChanged();
        return this;
      }

      private int failureThreshold_;
      /**
       *
       *
       * <pre>
       * Minimum consecutive failures for the probe to be considered failed after having succeeded.
       * Defaults to 3. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 failureThreshold = 6;</code>
       */
      public boolean hasFailureThreshold() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive failures for the probe to be considered failed after having succeeded.
       * Defaults to 3. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 failureThreshold = 6;</code>
       */
      public int getFailureThreshold() {
        return failureThreshold_;
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive failures for the probe to be considered failed after having succeeded.
       * Defaults to 3. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 failureThreshold = 6;</code>
       */
      public Builder setFailureThreshold(int value) {
        bitField0_ |= 0x00000020;
        failureThreshold_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Minimum consecutive failures for the probe to be considered failed after having succeeded.
       * Defaults to 3. Minimum value is 1.
       * +optional
       * </pre>
       *
       * <code>optional int32 failureThreshold = 6;</code>
       */
      public Builder clearFailureThreshold() {
        bitField0_ = (bitField0_ & ~0x00000020);
        failureThreshold_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Probe)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Probe)
    private static final io.kubernetes.client.proto.V1.Probe DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Probe();
    }

    public static io.kubernetes.client.proto.V1.Probe getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Probe> PARSER =
        new com.google.protobuf.AbstractParser<Probe>() {
          @java.lang.Override
          public Probe parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Probe(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Probe> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Probe> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Probe getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ProjectedVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ProjectedVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.VolumeProjection> getSourcesList();
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    io.kubernetes.client.proto.V1.VolumeProjection getSources(int index);
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    int getSourcesCount();
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>
        getSourcesOrBuilderList();
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder getSourcesOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Mode bits to use on created files by default. Must be a value between
     * 0 and 0777.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    boolean hasDefaultMode();
    /**
     *
     *
     * <pre>
     * Mode bits to use on created files by default. Must be a value between
     * 0 and 0777.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    int getDefaultMode();
  }
  /**
   *
   *
   * <pre>
   * Represents a projected volume source
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ProjectedVolumeSource}
   */
  public static final class ProjectedVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ProjectedVolumeSource)
      ProjectedVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ProjectedVolumeSource.newBuilder() to construct.
    private ProjectedVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ProjectedVolumeSource() {
      sources_ = java.util.Collections.emptyList();
      defaultMode_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ProjectedVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  sources_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeProjection>();
                  mutable_bitField0_ |= 0x00000001;
                }
                sources_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VolumeProjection.PARSER, extensionRegistry));
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000001;
                defaultMode_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          sources_ = java.util.Collections.unmodifiableList(sources_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ProjectedVolumeSource.class,
              io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int SOURCES_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.VolumeProjection> sources_;
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.VolumeProjection> getSourcesList() {
      return sources_;
    }
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>
        getSourcesOrBuilderList() {
      return sources_;
    }
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    public int getSourcesCount() {
      return sources_.size();
    }
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeProjection getSources(int index) {
      return sources_.get(index);
    }
    /**
     *
     *
     * <pre>
     * list of volume projections
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder getSourcesOrBuilder(int index) {
      return sources_.get(index);
    }

    public static final int DEFAULTMODE_FIELD_NUMBER = 2;
    private int defaultMode_;
    /**
     *
     *
     * <pre>
     * Mode bits to use on created files by default. Must be a value between
     * 0 and 0777.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    public boolean hasDefaultMode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Mode bits to use on created files by default. Must be a value between
     * 0 and 0777.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 2;</code>
     */
    public int getDefaultMode() {
      return defaultMode_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < sources_.size(); i++) {
        output.writeMessage(1, sources_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(2, defaultMode_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < sources_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, sources_.get(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, defaultMode_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ProjectedVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ProjectedVolumeSource other =
          (io.kubernetes.client.proto.V1.ProjectedVolumeSource) obj;

      boolean result = true;
      result = result && getSourcesList().equals(other.getSourcesList());
      result = result && (hasDefaultMode() == other.hasDefaultMode());
      if (hasDefaultMode()) {
        result = result && (getDefaultMode() == other.getDefaultMode());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getSourcesCount() > 0) {
        hash = (37 * hash) + SOURCES_FIELD_NUMBER;
        hash = (53 * hash) + getSourcesList().hashCode();
      }
      if (hasDefaultMode()) {
        hash = (37 * hash) + DEFAULTMODE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultMode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ProjectedVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a projected volume source
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ProjectedVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ProjectedVolumeSource)
        io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ProjectedVolumeSource.class,
                io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ProjectedVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSourcesFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          sourcesBuilder_.clear();
        }
        defaultMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ProjectedVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ProjectedVolumeSource build() {
        io.kubernetes.client.proto.V1.ProjectedVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ProjectedVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ProjectedVolumeSource result =
            new io.kubernetes.client.proto.V1.ProjectedVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (sourcesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            sources_ = java.util.Collections.unmodifiableList(sources_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.sources_ = sources_;
        } else {
          result.sources_ = sourcesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.defaultMode_ = defaultMode_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ProjectedVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ProjectedVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ProjectedVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance())
          return this;
        if (sourcesBuilder_ == null) {
          if (!other.sources_.isEmpty()) {
            if (sources_.isEmpty()) {
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureSourcesIsMutable();
              sources_.addAll(other.sources_);
            }
            onChanged();
          }
        } else {
          if (!other.sources_.isEmpty()) {
            if (sourcesBuilder_.isEmpty()) {
              sourcesBuilder_.dispose();
              sourcesBuilder_ = null;
              sources_ = other.sources_;
              bitField0_ = (bitField0_ & ~0x00000001);
              sourcesBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getSourcesFieldBuilder()
                      : null;
            } else {
              sourcesBuilder_.addAllMessages(other.sources_);
            }
          }
        }
        if (other.hasDefaultMode()) {
          setDefaultMode(other.getDefaultMode());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ProjectedVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ProjectedVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.VolumeProjection> sources_ =
          java.util.Collections.emptyList();

      private void ensureSourcesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          sources_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.VolumeProjection>(sources_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeProjection,
              io.kubernetes.client.proto.V1.VolumeProjection.Builder,
              io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>
          sourcesBuilder_;

      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeProjection> getSourcesList() {
        if (sourcesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sources_);
        } else {
          return sourcesBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public int getSourcesCount() {
        if (sourcesBuilder_ == null) {
          return sources_.size();
        } else {
          return sourcesBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeProjection getSources(int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);
        } else {
          return sourcesBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder setSources(int index, io.kubernetes.client.proto.V1.VolumeProjection value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.set(index, value);
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder setSources(
          int index, io.kubernetes.client.proto.V1.VolumeProjection.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder addSources(io.kubernetes.client.proto.V1.VolumeProjection value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder addSources(int index, io.kubernetes.client.proto.V1.VolumeProjection value) {
        if (sourcesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourcesIsMutable();
          sources_.add(index, value);
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder addSources(
          io.kubernetes.client.proto.V1.VolumeProjection.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder addSources(
          int index, io.kubernetes.client.proto.V1.VolumeProjection.Builder builderForValue) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourcesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder addAllSources(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.VolumeProjection> values) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, sources_);
          onChanged();
        } else {
          sourcesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder clearSources() {
        if (sourcesBuilder_ == null) {
          sources_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          sourcesBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public Builder removeSources(int index) {
        if (sourcesBuilder_ == null) {
          ensureSourcesIsMutable();
          sources_.remove(index);
          onChanged();
        } else {
          sourcesBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeProjection.Builder getSourcesBuilder(int index) {
        return getSourcesFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder getSourcesOrBuilder(
          int index) {
        if (sourcesBuilder_ == null) {
          return sources_.get(index);
        } else {
          return sourcesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>
          getSourcesOrBuilderList() {
        if (sourcesBuilder_ != null) {
          return sourcesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sources_);
        }
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeProjection.Builder addSourcesBuilder() {
        return getSourcesFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.VolumeProjection.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeProjection.Builder addSourcesBuilder(int index) {
        return getSourcesFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.VolumeProjection.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * list of volume projections
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.VolumeProjection sources = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.VolumeProjection.Builder>
          getSourcesBuilderList() {
        return getSourcesFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeProjection,
              io.kubernetes.client.proto.V1.VolumeProjection.Builder,
              io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>
          getSourcesFieldBuilder() {
        if (sourcesBuilder_ == null) {
          sourcesBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VolumeProjection,
                  io.kubernetes.client.proto.V1.VolumeProjection.Builder,
                  io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder>(
                  sources_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          sources_ = null;
        }
        return sourcesBuilder_;
      }

      private int defaultMode_;
      /**
       *
       *
       * <pre>
       * Mode bits to use on created files by default. Must be a value between
       * 0 and 0777.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public boolean hasDefaultMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Mode bits to use on created files by default. Must be a value between
       * 0 and 0777.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public int getDefaultMode() {
        return defaultMode_;
      }
      /**
       *
       *
       * <pre>
       * Mode bits to use on created files by default. Must be a value between
       * 0 and 0777.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public Builder setDefaultMode(int value) {
        bitField0_ |= 0x00000002;
        defaultMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Mode bits to use on created files by default. Must be a value between
       * 0 and 0777.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 2;</code>
       */
      public Builder clearDefaultMode() {
        bitField0_ = (bitField0_ & ~0x00000002);
        defaultMode_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ProjectedVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ProjectedVolumeSource)
    private static final io.kubernetes.client.proto.V1.ProjectedVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ProjectedVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ProjectedVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ProjectedVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ProjectedVolumeSource>() {
          @java.lang.Override
          public ProjectedVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ProjectedVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ProjectedVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ProjectedVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ProjectedVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface QuobyteVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.QuobyteVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    boolean hasRegistry();
    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    java.lang.String getRegistry();
    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    com.google.protobuf.ByteString getRegistryBytes();

    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    boolean hasVolume();
    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    java.lang.String getVolume();
    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    com.google.protobuf.ByteString getVolumeBytes();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    boolean hasGroup();
    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    java.lang.String getGroup();
    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    com.google.protobuf.ByteString getGroupBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a Quobyte mount that lasts the lifetime of a pod.
   * Quobyte volumes do not support ownership management or SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.QuobyteVolumeSource}
   */
  public static final class QuobyteVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.QuobyteVolumeSource)
      QuobyteVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use QuobyteVolumeSource.newBuilder() to construct.
    private QuobyteVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private QuobyteVolumeSource() {
      registry_ = "";
      volume_ = "";
      readOnly_ = false;
      user_ = "";
      group_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private QuobyteVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                registry_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                volume_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                readOnly_ = input.readBool();
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                user_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                group_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.class,
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int REGISTRY_FIELD_NUMBER = 1;
    private volatile java.lang.Object registry_;
    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    public boolean hasRegistry() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    public java.lang.String getRegistry() {
      java.lang.Object ref = registry_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          registry_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Registry represents a single or multiple Quobyte Registry services
     * specified as a string as host:port pair (multiple entries are separated with commas)
     * which acts as the central registry for volumes
     * </pre>
     *
     * <code>optional string registry = 1;</code>
     */
    public com.google.protobuf.ByteString getRegistryBytes() {
      java.lang.Object ref = registry_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        registry_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUME_FIELD_NUMBER = 2;
    private volatile java.lang.Object volume_;
    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    public boolean hasVolume() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    public java.lang.String getVolume() {
      java.lang.Object ref = volume_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volume_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Volume is a string that references an already created Quobyte volume by name.
     * </pre>
     *
     * <code>optional string volume = 2;</code>
     */
    public com.google.protobuf.ByteString getVolumeBytes() {
      java.lang.Object ref = volume_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volume_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 3;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 3;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int USER_FIELD_NUMBER = 4;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * User to map volume access to
     * Defaults to serivceaccount user
     * +optional
     * </pre>
     *
     * <code>optional string user = 4;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GROUP_FIELD_NUMBER = 5;
    private volatile java.lang.Object group_;
    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    public boolean hasGroup() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    public java.lang.String getGroup() {
      java.lang.Object ref = group_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          group_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Group to map volume access to
     * Default is no group
     * +optional
     * </pre>
     *
     * <code>optional string group = 5;</code>
     */
    public com.google.protobuf.ByteString getGroupBytes() {
      java.lang.Object ref = group_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        group_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, registry_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, volume_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, group_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, registry_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, volume_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, readOnly_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, group_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.QuobyteVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.QuobyteVolumeSource other =
          (io.kubernetes.client.proto.V1.QuobyteVolumeSource) obj;

      boolean result = true;
      result = result && (hasRegistry() == other.hasRegistry());
      if (hasRegistry()) {
        result = result && getRegistry().equals(other.getRegistry());
      }
      result = result && (hasVolume() == other.hasVolume());
      if (hasVolume()) {
        result = result && getVolume().equals(other.getVolume());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasGroup() == other.hasGroup());
      if (hasGroup()) {
        result = result && getGroup().equals(other.getGroup());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRegistry()) {
        hash = (37 * hash) + REGISTRY_FIELD_NUMBER;
        hash = (53 * hash) + getRegistry().hashCode();
      }
      if (hasVolume()) {
        hash = (37 * hash) + VOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getVolume().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasGroup()) {
        hash = (37 * hash) + GROUP_FIELD_NUMBER;
        hash = (53 * hash) + getGroup().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.QuobyteVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Quobyte mount that lasts the lifetime of a pod.
     * Quobyte volumes do not support ownership management or SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.QuobyteVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.QuobyteVolumeSource)
        io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.class,
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.QuobyteVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        registry_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        volume_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        group_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource build() {
        io.kubernetes.client.proto.V1.QuobyteVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.QuobyteVolumeSource result =
            new io.kubernetes.client.proto.V1.QuobyteVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.registry_ = registry_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volume_ = volume_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.group_ = group_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.QuobyteVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.QuobyteVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.QuobyteVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance())
          return this;
        if (other.hasRegistry()) {
          bitField0_ |= 0x00000001;
          registry_ = other.registry_;
          onChanged();
        }
        if (other.hasVolume()) {
          bitField0_ |= 0x00000002;
          volume_ = other.volume_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000008;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasGroup()) {
          bitField0_ |= 0x00000010;
          group_ = other.group_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.QuobyteVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.QuobyteVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object registry_ = "";
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public boolean hasRegistry() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public java.lang.String getRegistry() {
        java.lang.Object ref = registry_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            registry_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public com.google.protobuf.ByteString getRegistryBytes() {
        java.lang.Object ref = registry_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          registry_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public Builder setRegistry(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        registry_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public Builder clearRegistry() {
        bitField0_ = (bitField0_ & ~0x00000001);
        registry_ = getDefaultInstance().getRegistry();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Registry represents a single or multiple Quobyte Registry services
       * specified as a string as host:port pair (multiple entries are separated with commas)
       * which acts as the central registry for volumes
       * </pre>
       *
       * <code>optional string registry = 1;</code>
       */
      public Builder setRegistryBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        registry_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volume_ = "";
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public boolean hasVolume() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public java.lang.String getVolume() {
        java.lang.Object ref = volume_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volume_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public com.google.protobuf.ByteString getVolumeBytes() {
        java.lang.Object ref = volume_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volume_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public Builder setVolume(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volume_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public Builder clearVolume() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volume_ = getDefaultInstance().getVolume();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Volume is a string that references an already created Quobyte volume by name.
       * </pre>
       *
       * <code>optional string volume = 2;</code>
       */
      public Builder setVolumeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volume_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000004;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the Quobyte volume to be mounted with read-only permissions.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 3;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000008);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * User to map volume access to
       * Defaults to serivceaccount user
       * +optional
       * </pre>
       *
       * <code>optional string user = 4;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object group_ = "";
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public boolean hasGroup() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public java.lang.String getGroup() {
        java.lang.Object ref = group_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            group_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public com.google.protobuf.ByteString getGroupBytes() {
        java.lang.Object ref = group_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          group_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public Builder setGroup(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        group_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public Builder clearGroup() {
        bitField0_ = (bitField0_ & ~0x00000010);
        group_ = getDefaultInstance().getGroup();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Group to map volume access to
       * Default is no group
       * +optional
       * </pre>
       *
       * <code>optional string group = 5;</code>
       */
      public Builder setGroupBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        group_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.QuobyteVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.QuobyteVolumeSource)
    private static final io.kubernetes.client.proto.V1.QuobyteVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.QuobyteVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.QuobyteVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<QuobyteVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<QuobyteVolumeSource>() {
          @java.lang.Override
          public QuobyteVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new QuobyteVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<QuobyteVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<QuobyteVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.QuobyteVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface RBDPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.RBDPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.util.List<java.lang.String> getMonitorsList();
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    int getMonitorsCount();
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.lang.String getMonitors(int index);
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    com.google.protobuf.ByteString getMonitorsBytes(int index);

    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    boolean hasImage();
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    java.lang.String getImage();
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    com.google.protobuf.ByteString getImageBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    boolean hasPool();
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    java.lang.String getPool();
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    com.google.protobuf.ByteString getPoolBytes();

    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    boolean hasKeyring();
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    java.lang.String getKeyring();
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    com.google.protobuf.ByteString getKeyringBytes();

    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Rados Block Device mount that lasts the lifetime of a pod.
   * RBD volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.RBDPersistentVolumeSource}
   */
  public static final class RBDPersistentVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.RBDPersistentVolumeSource)
      RBDPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use RBDPersistentVolumeSource.newBuilder() to construct.
    private RBDPersistentVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private RBDPersistentVolumeSource() {
      monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      image_ = "";
      fsType_ = "";
      pool_ = "";
      user_ = "";
      keyring_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private RBDPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  monitors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                monitors_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                image_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                pool_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                user_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                keyring_ = bs;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000040;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int MONITORS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList monitors_;
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getMonitorsList() {
      return monitors_;
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public int getMonitorsCount() {
      return monitors_.size();
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public java.lang.String getMonitors(int index) {
      return monitors_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ByteString getMonitorsBytes(int index) {
      return monitors_.getByteString(index);
    }

    public static final int IMAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object image_;
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public boolean hasImage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public java.lang.String getImage() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          image_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public com.google.protobuf.ByteString getImageBytes() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        image_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POOL_FIELD_NUMBER = 4;
    private volatile java.lang.Object pool_;
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public boolean hasPool() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public java.lang.String getPool() {
      java.lang.Object ref = pool_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pool_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public com.google.protobuf.ByteString getPoolBytes() {
      java.lang.Object ref = pool_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pool_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USER_FIELD_NUMBER = 5;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KEYRING_FIELD_NUMBER = 6;
    private volatile java.lang.Object keyring_;
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public boolean hasKeyring() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public java.lang.String getKeyring() {
      java.lang.Object ref = keyring_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          keyring_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public com.google.protobuf.ByteString getKeyringBytes() {
      java.lang.Object ref = keyring_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        keyring_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 8;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < monitors_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, monitors_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, image_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pool_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, keyring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < monitors_.size(); i++) {
          dataSize += computeStringSizeNoTag(monitors_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMonitorsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, image_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pool_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, keyring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.RBDPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.RBDPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.RBDPersistentVolumeSource) obj;

      boolean result = true;
      result = result && getMonitorsList().equals(other.getMonitorsList());
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage().equals(other.getImage());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasPool() == other.hasPool());
      if (hasPool()) {
        result = result && getPool().equals(other.getPool());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasKeyring() == other.hasKeyring());
      if (hasKeyring()) {
        result = result && getKeyring().equals(other.getKeyring());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMonitorsCount() > 0) {
        hash = (37 * hash) + MONITORS_FIELD_NUMBER;
        hash = (53 * hash) + getMonitorsList().hashCode();
      }
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasPool()) {
        hash = (37 * hash) + POOL_FIELD_NUMBER;
        hash = (53 * hash) + getPool().hashCode();
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasKeyring()) {
        hash = (37 * hash) + KEYRING_FIELD_NUMBER;
        hash = (53 * hash) + getKeyring().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.RBDPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Rados Block Device mount that lasts the lifetime of a pod.
     * RBD volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.RBDPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.RBDPersistentVolumeSource)
        io.kubernetes.client.proto.V1.RBDPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        image_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        pool_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        keyring_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.RBDPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.RBDPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.RBDPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.monitors_ = monitors_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.image_ = image_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.pool_ = pool_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.keyring_ = keyring_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.RBDPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.RBDPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.RBDPersistentVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.RBDPersistentVolumeSource.getDefaultInstance())
          return this;
        if (!other.monitors_.isEmpty()) {
          if (monitors_.isEmpty()) {
            monitors_ = other.monitors_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMonitorsIsMutable();
            monitors_.addAll(other.monitors_);
          }
          onChanged();
        }
        if (other.hasImage()) {
          bitField0_ |= 0x00000002;
          image_ = other.image_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000004;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasPool()) {
          bitField0_ |= 0x00000008;
          pool_ = other.pool_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000010;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasKeyring()) {
          bitField0_ |= 0x00000020;
          keyring_ = other.keyring_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.RBDPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.RBDPersistentVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList monitors_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureMonitorsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = new com.google.protobuf.LazyStringArrayList(monitors_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getMonitorsList() {
        return monitors_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public int getMonitorsCount() {
        return monitors_.size();
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public java.lang.String getMonitors(int index) {
        return monitors_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ByteString getMonitorsBytes(int index) {
        return monitors_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder setMonitors(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitors(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addAllMonitors(java.lang.Iterable<java.lang.String> values) {
        ensureMonitorsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, monitors_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder clearMonitors() {
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitorsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object image_ = "";
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public java.lang.String getImage() {
        java.lang.Object ref = image_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            image_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public com.google.protobuf.ByteString getImageBytes() {
        java.lang.Object ref = image_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          image_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        image_ = getDefaultInstance().getImage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object pool_ = "";
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public boolean hasPool() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public java.lang.String getPool() {
        java.lang.Object ref = pool_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pool_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public com.google.protobuf.ByteString getPoolBytes() {
        java.lang.Object ref = pool_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          pool_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder setPool(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        pool_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder clearPool() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pool_ = getDefaultInstance().getPool();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder setPoolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        pool_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000010);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object keyring_ = "";
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public boolean hasKeyring() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public java.lang.String getKeyring() {
        java.lang.Object ref = keyring_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            keyring_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public com.google.protobuf.ByteString getKeyringBytes() {
        java.lang.Object ref = keyring_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          keyring_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder setKeyring(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        keyring_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder clearKeyring() {
        bitField0_ = (bitField0_ & ~0x00000020);
        keyring_ = getDefaultInstance().getKeyring();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder setKeyringBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        keyring_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000080;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000080);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.RBDPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.RBDPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.RBDPersistentVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.RBDPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<RBDPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<RBDPersistentVolumeSource>() {
          @java.lang.Override
          public RBDPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new RBDPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<RBDPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RBDPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.RBDPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface RBDVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.RBDVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.util.List<java.lang.String> getMonitorsList();
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    int getMonitorsCount();
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    java.lang.String getMonitors(int index);
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    com.google.protobuf.ByteString getMonitorsBytes(int index);

    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    boolean hasImage();
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    java.lang.String getImage();
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    com.google.protobuf.ByteString getImageBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    boolean hasPool();
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    java.lang.String getPool();
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    com.google.protobuf.ByteString getPoolBytes();

    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    boolean hasKeyring();
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    java.lang.String getKeyring();
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    com.google.protobuf.ByteString getKeyringBytes();

    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * Represents a Rados Block Device mount that lasts the lifetime of a pod.
   * RBD volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.RBDVolumeSource}
   */
  public static final class RBDVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.RBDVolumeSource)
      RBDVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use RBDVolumeSource.newBuilder() to construct.
    private RBDVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private RBDVolumeSource() {
      monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      image_ = "";
      fsType_ = "";
      pool_ = "";
      user_ = "";
      keyring_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private RBDVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  monitors_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000001;
                }
                monitors_.add(bs);
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                image_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                pool_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                user_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                keyring_ = bs;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000040;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_RBDVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.RBDVolumeSource.class,
              io.kubernetes.client.proto.V1.RBDVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int MONITORS_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList monitors_;
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ProtocolStringList getMonitorsList() {
      return monitors_;
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public int getMonitorsCount() {
      return monitors_.size();
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public java.lang.String getMonitors(int index) {
      return monitors_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A collection of Ceph monitors.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>repeated string monitors = 1;</code>
     */
    public com.google.protobuf.ByteString getMonitorsBytes(int index) {
      return monitors_.getByteString(index);
    }

    public static final int IMAGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object image_;
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public boolean hasImage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public java.lang.String getImage() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          image_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados image name.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * </pre>
     *
     * <code>optional string image = 2;</code>
     */
    public com.google.protobuf.ByteString getImageBytes() {
      java.lang.Object ref = image_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        image_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type of the volume that you want to mount.
     * Tip: Ensure that the filesystem type is supported by the host operating system.
     * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
     * TODO: how do we prevent errors in the filesystem from compromising the machine
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int POOL_FIELD_NUMBER = 4;
    private volatile java.lang.Object pool_;
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public boolean hasPool() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public java.lang.String getPool() {
      java.lang.Object ref = pool_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          pool_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados pool name.
     * Default is rbd.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string pool = 4;</code>
     */
    public com.google.protobuf.ByteString getPoolBytes() {
      java.lang.Object ref = pool_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pool_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int USER_FIELD_NUMBER = 5;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The rados user name.
     * Default is admin.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string user = 5;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KEYRING_FIELD_NUMBER = 6;
    private volatile java.lang.Object keyring_;
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public boolean hasKeyring() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public java.lang.String getKeyring() {
      java.lang.Object ref = keyring_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          keyring_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Keyring is the path to key ring for RBDUser.
     * Default is /etc/ceph/keyring.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional string keyring = 6;</code>
     */
    public com.google.protobuf.ByteString getKeyringBytes() {
      java.lang.Object ref = keyring_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        keyring_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef is name of the authentication secret for RBDUser. If provided
     * overrides keyring.
     * Default is nil.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int READONLY_FIELD_NUMBER = 8;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * ReadOnly here will force the ReadOnly setting in VolumeMounts.
     * Defaults to false.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 8;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < monitors_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, monitors_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, image_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, pool_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, keyring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(7, getSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(8, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < monitors_.size(); i++) {
          dataSize += computeStringSizeNoTag(monitors_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getMonitorsList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, image_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, pool_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, user_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, keyring_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getSecretRef());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(8, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.RBDVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.RBDVolumeSource other =
          (io.kubernetes.client.proto.V1.RBDVolumeSource) obj;

      boolean result = true;
      result = result && getMonitorsList().equals(other.getMonitorsList());
      result = result && (hasImage() == other.hasImage());
      if (hasImage()) {
        result = result && getImage().equals(other.getImage());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasPool() == other.hasPool());
      if (hasPool()) {
        result = result && getPool().equals(other.getPool());
      }
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasKeyring() == other.hasKeyring());
      if (hasKeyring()) {
        result = result && getKeyring().equals(other.getKeyring());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMonitorsCount() > 0) {
        hash = (37 * hash) + MONITORS_FIELD_NUMBER;
        hash = (53 * hash) + getMonitorsList().hashCode();
      }
      if (hasImage()) {
        hash = (37 * hash) + IMAGE_FIELD_NUMBER;
        hash = (53 * hash) + getImage().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasPool()) {
        hash = (37 * hash) + POOL_FIELD_NUMBER;
        hash = (53 * hash) + getPool().hashCode();
      }
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasKeyring()) {
        hash = (37 * hash) + KEYRING_FIELD_NUMBER;
        hash = (53 * hash) + getKeyring().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.RBDVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a Rados Block Device mount that lasts the lifetime of a pod.
     * RBD volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.RBDVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.RBDVolumeSource)
        io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_RBDVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.RBDVolumeSource.class,
                io.kubernetes.client.proto.V1.RBDVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.RBDVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        image_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        pool_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        keyring_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDVolumeSource build() {
        io.kubernetes.client.proto.V1.RBDVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RBDVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.RBDVolumeSource result =
            new io.kubernetes.client.proto.V1.RBDVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = monitors_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.monitors_ = monitors_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000001;
        }
        result.image_ = image_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.pool_ = pool_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000008;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000010;
        }
        result.keyring_ = keyring_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000020;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000040;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.RBDVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.RBDVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.RBDVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance())
          return this;
        if (!other.monitors_.isEmpty()) {
          if (monitors_.isEmpty()) {
            monitors_ = other.monitors_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMonitorsIsMutable();
            monitors_.addAll(other.monitors_);
          }
          onChanged();
        }
        if (other.hasImage()) {
          bitField0_ |= 0x00000002;
          image_ = other.image_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000004;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasPool()) {
          bitField0_ |= 0x00000008;
          pool_ = other.pool_;
          onChanged();
        }
        if (other.hasUser()) {
          bitField0_ |= 0x00000010;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasKeyring()) {
          bitField0_ |= 0x00000020;
          keyring_ = other.keyring_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.RBDVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.RBDVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.LazyStringList monitors_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureMonitorsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          monitors_ = new com.google.protobuf.LazyStringArrayList(monitors_);
          bitField0_ |= 0x00000001;
        }
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ProtocolStringList getMonitorsList() {
        return monitors_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public int getMonitorsCount() {
        return monitors_.size();
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public java.lang.String getMonitors(int index) {
        return monitors_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public com.google.protobuf.ByteString getMonitorsBytes(int index) {
        return monitors_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder setMonitors(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitors(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addAllMonitors(java.lang.Iterable<java.lang.String> values) {
        ensureMonitorsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, monitors_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder clearMonitors() {
        monitors_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of Ceph monitors.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>repeated string monitors = 1;</code>
       */
      public Builder addMonitorsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureMonitorsIsMutable();
        monitors_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object image_ = "";
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public boolean hasImage() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public java.lang.String getImage() {
        java.lang.Object ref = image_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            image_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public com.google.protobuf.ByteString getImageBytes() {
        java.lang.Object ref = image_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          image_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder clearImage() {
        bitField0_ = (bitField0_ & ~0x00000002);
        image_ = getDefaultInstance().getImage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados image name.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * </pre>
       *
       * <code>optional string image = 2;</code>
       */
      public Builder setImageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        image_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type of the volume that you want to mount.
       * Tip: Ensure that the filesystem type is supported by the host operating system.
       * Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd
       * TODO: how do we prevent errors in the filesystem from compromising the machine
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object pool_ = "";
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public boolean hasPool() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public java.lang.String getPool() {
        java.lang.Object ref = pool_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            pool_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public com.google.protobuf.ByteString getPoolBytes() {
        java.lang.Object ref = pool_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          pool_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder setPool(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        pool_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder clearPool() {
        bitField0_ = (bitField0_ & ~0x00000008);
        pool_ = getDefaultInstance().getPool();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados pool name.
       * Default is rbd.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string pool = 4;</code>
       */
      public Builder setPoolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        pool_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000010);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The rados user name.
       * Default is admin.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string user = 5;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object keyring_ = "";
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public boolean hasKeyring() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public java.lang.String getKeyring() {
        java.lang.Object ref = keyring_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            keyring_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public com.google.protobuf.ByteString getKeyringBytes() {
        java.lang.Object ref = keyring_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          keyring_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder setKeyring(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        keyring_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder clearKeyring() {
        bitField0_ = (bitField0_ & ~0x00000020);
        keyring_ = getDefaultInstance().getKeyring();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Keyring is the path to key ring for RBDUser.
       * Default is /etc/ceph/keyring.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional string keyring = 6;</code>
       */
      public Builder setKeyringBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        keyring_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef is name of the authentication secret for RBDUser. If provided
       * overrides keyring.
       * Default is nil.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000080;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ReadOnly here will force the ReadOnly setting in VolumeMounts.
       * Defaults to false.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 8;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000080);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.RBDVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.RBDVolumeSource)
    private static final io.kubernetes.client.proto.V1.RBDVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.RBDVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.RBDVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<RBDVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<RBDVolumeSource>() {
          @java.lang.Override
          public RBDVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new RBDVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<RBDVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RBDVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.RBDVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface RangeAllocationOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.RangeAllocation)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    boolean hasRange();
    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    java.lang.String getRange();
    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    com.google.protobuf.ByteString getRangeBytes();

    /**
     *
     *
     * <pre>
     * Data is a bit array containing all allocated addresses in the previous segment.
     * </pre>
     *
     * <code>optional bytes data = 3;</code>
     */
    boolean hasData();
    /**
     *
     *
     * <pre>
     * Data is a bit array containing all allocated addresses in the previous segment.
     * </pre>
     *
     * <code>optional bytes data = 3;</code>
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   *
   *
   * <pre>
   * RangeAllocation is not a public type.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.RangeAllocation}
   */
  public static final class RangeAllocation extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.RangeAllocation)
      RangeAllocationOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use RangeAllocation.newBuilder() to construct.
    private RangeAllocation(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private RangeAllocation() {
      range_ = "";
      data_ = com.google.protobuf.ByteString.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private RangeAllocation(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                range_ = bs;
                break;
              }
            case 26:
              {
                bitField0_ |= 0x00000004;
                data_ = input.readBytes();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_RangeAllocation_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.RangeAllocation.class,
              io.kubernetes.client.proto.V1.RangeAllocation.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int RANGE_FIELD_NUMBER = 2;
    private volatile java.lang.Object range_;
    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    public boolean hasRange() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    public java.lang.String getRange() {
      java.lang.Object ref = range_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          range_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Range is string that identifies the range represented by 'data'.
     * </pre>
     *
     * <code>optional string range = 2;</code>
     */
    public com.google.protobuf.ByteString getRangeBytes() {
      java.lang.Object ref = range_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        range_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString data_;
    /**
     *
     *
     * <pre>
     * Data is a bit array containing all allocated addresses in the previous segment.
     * </pre>
     *
     * <code>optional bytes data = 3;</code>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Data is a bit array containing all allocated addresses in the previous segment.
     * </pre>
     *
     * <code>optional bytes data = 3;</code>
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, range_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, data_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, range_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBytesSize(3, data_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.RangeAllocation)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.RangeAllocation other =
          (io.kubernetes.client.proto.V1.RangeAllocation) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasRange() == other.hasRange());
      if (hasRange()) {
        result = result && getRange().equals(other.getRange());
      }
      result = result && (hasData() == other.hasData());
      if (hasData()) {
        result = result && getData().equals(other.getData());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasRange()) {
        hash = (37 * hash) + RANGE_FIELD_NUMBER;
        hash = (53 * hash) + getRange().hashCode();
      }
      if (hasData()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + getData().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.RangeAllocation prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * RangeAllocation is not a public type.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.RangeAllocation}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.RangeAllocation)
        io.kubernetes.client.proto.V1.RangeAllocationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_RangeAllocation_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.RangeAllocation.class,
                io.kubernetes.client.proto.V1.RangeAllocation.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.RangeAllocation.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        range_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RangeAllocation getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.RangeAllocation.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RangeAllocation build() {
        io.kubernetes.client.proto.V1.RangeAllocation result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.RangeAllocation buildPartial() {
        io.kubernetes.client.proto.V1.RangeAllocation result =
            new io.kubernetes.client.proto.V1.RangeAllocation(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.range_ = range_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.RangeAllocation) {
          return mergeFrom((io.kubernetes.client.proto.V1.RangeAllocation) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.RangeAllocation other) {
        if (other == io.kubernetes.client.proto.V1.RangeAllocation.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasRange()) {
          bitField0_ |= 0x00000002;
          range_ = other.range_;
          onChanged();
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.RangeAllocation parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.RangeAllocation) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.lang.Object range_ = "";
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public boolean hasRange() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public java.lang.String getRange() {
        java.lang.Object ref = range_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            range_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public com.google.protobuf.ByteString getRangeBytes() {
        java.lang.Object ref = range_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          range_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public Builder setRange(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        range_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public Builder clearRange() {
        bitField0_ = (bitField0_ & ~0x00000002);
        range_ = getDefaultInstance().getRange();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Range is string that identifies the range represented by 'data'.
       * </pre>
       *
       * <code>optional string range = 2;</code>
       */
      public Builder setRangeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        range_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       *
       *
       * <pre>
       * Data is a bit array containing all allocated addresses in the previous segment.
       * </pre>
       *
       * <code>optional bytes data = 3;</code>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Data is a bit array containing all allocated addresses in the previous segment.
       * </pre>
       *
       * <code>optional bytes data = 3;</code>
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       *
       *
       * <pre>
       * Data is a bit array containing all allocated addresses in the previous segment.
       * </pre>
       *
       * <code>optional bytes data = 3;</code>
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data is a bit array containing all allocated addresses in the previous segment.
       * </pre>
       *
       * <code>optional bytes data = 3;</code>
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.RangeAllocation)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.RangeAllocation)
    private static final io.kubernetes.client.proto.V1.RangeAllocation DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.RangeAllocation();
    }

    public static io.kubernetes.client.proto.V1.RangeAllocation getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<RangeAllocation> PARSER =
        new com.google.protobuf.AbstractParser<RangeAllocation>() {
          @java.lang.Override
          public RangeAllocation parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new RangeAllocation(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<RangeAllocation> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<RangeAllocation> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.RangeAllocation getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ReplicationControllerOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ReplicationController)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ReplicationController represents the configuration of a replication controller.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ReplicationController}
   */
  public static final class ReplicationController extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ReplicationController)
      ReplicationControllerOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ReplicationController.newBuilder() to construct.
    private ReplicationController(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ReplicationController() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ReplicationController(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ReplicationControllerSpec.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ReplicationControllerStatus.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ReplicationController_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ReplicationController_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ReplicationController.class,
              io.kubernetes.client.proto.V1.ReplicationController.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * If the Labels of a ReplicationController are empty, they are defaulted to
     * be the same as the Pod(s) that the replication controller manages.
     * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ReplicationControllerSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the specification of the desired behavior of the replication controller.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ReplicationControllerStatus status_;
    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status is the most recently observed status of the replication controller.
     * This data may be out of date by some window of time.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ReplicationController)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ReplicationController other =
          (io.kubernetes.client.proto.V1.ReplicationController) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationController parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ReplicationController prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ReplicationController represents the configuration of a replication controller.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ReplicationController}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ReplicationController)
        io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationController_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ReplicationController_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ReplicationController.class,
                io.kubernetes.client.proto.V1.ReplicationController.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ReplicationController.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationController_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationController getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationController.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationController build() {
        io.kubernetes.client.proto.V1.ReplicationController result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationController buildPartial() {
        io.kubernetes.client.proto.V1.ReplicationController result =
            new io.kubernetes.client.proto.V1.ReplicationController(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ReplicationController) {
          return mergeFrom((io.kubernetes.client.proto.V1.ReplicationController) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ReplicationController other) {
        if (other == io.kubernetes.client.proto.V1.ReplicationController.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ReplicationController parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ReplicationController) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * If the Labels of a ReplicationController are empty, they are defaulted to
       * be the same as the Pod(s) that the replication controller manages.
       * Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.ReplicationControllerSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerSpec,
              io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.ReplicationControllerSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.ReplicationControllerSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_
                  != io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.ReplicationControllerSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the specification of the desired behavior of the replication controller.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerSpec,
              io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ReplicationControllerSpec,
                  io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder,
                  io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.ReplicationControllerStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerStatus,
              io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.ReplicationControllerStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.ReplicationControllerStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1.ReplicationControllerStatus
                      .getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.ReplicationControllerStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder
          getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status is the most recently observed status of the replication controller.
       * This data may be out of date by some window of time.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ReplicationControllerStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerStatus,
              io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ReplicationControllerStatus,
                  io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder,
                  io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ReplicationController)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ReplicationController)
    private static final io.kubernetes.client.proto.V1.ReplicationController DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ReplicationController();
    }

    public static io.kubernetes.client.proto.V1.ReplicationController getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ReplicationController> PARSER =
        new com.google.protobuf.AbstractParser<ReplicationController>() {
          @java.lang.Override
          public ReplicationController parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ReplicationController(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ReplicationController> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReplicationController> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ReplicationController getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ReplicationControllerConditionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ReplicationControllerCondition)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    java.lang.String getStatus();
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    com.google.protobuf.ByteString getStatusBytes();

    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    boolean hasLastTransitionTime();
    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.Time getLastTransitionTime();
    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder();

    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    boolean hasReason();
    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    java.lang.String getReason();
    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    com.google.protobuf.ByteString getReasonBytes();

    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    boolean hasMessage();
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    java.lang.String getMessage();
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    com.google.protobuf.ByteString getMessageBytes();
  }
  /**
   *
   *
   * <pre>
   * ReplicationControllerCondition describes the state of a replication controller at a certain point.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerCondition}
   */
  public static final class ReplicationControllerCondition
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ReplicationControllerCondition)
      ReplicationControllerConditionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ReplicationControllerCondition.newBuilder() to construct.
    private ReplicationControllerCondition(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ReplicationControllerCondition() {
      type_ = "";
      status_ = "";
      reason_ = "";
      message_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ReplicationControllerCondition(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                type_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                status_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = lastTransitionTime_.toBuilder();
                }
                lastTransitionTime_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(lastTransitionTime_);
                  lastTransitionTime_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                reason_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                message_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ReplicationControllerCondition.class,
              io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder.class);
    }

    private int bitField0_;
    public static final int TYPE_FIELD_NUMBER = 1;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type of replication controller condition.
     * </pre>
     *
     * <code>optional string type = 1;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STATUS_FIELD_NUMBER = 2;
    private volatile java.lang.Object status_;
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public java.lang.String getStatus() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          status_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Status of the condition, one of True, False, Unknown.
     * </pre>
     *
     * <code>optional string status = 2;</code>
     */
    public com.google.protobuf.ByteString getStatusBytes() {
      java.lang.Object ref = status_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        status_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LASTTRANSITIONTIME_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Meta.Time lastTransitionTime_;
    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public boolean hasLastTransitionTime() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }
    /**
     *
     *
     * <pre>
     * The last time the condition transitioned from one status to another.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
      return lastTransitionTime_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : lastTransitionTime_;
    }

    public static final int REASON_FIELD_NUMBER = 4;
    private volatile java.lang.Object reason_;
    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public boolean hasReason() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public java.lang.String getReason() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          reason_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The reason for the condition's last transition.
     * +optional
     * </pre>
     *
     * <code>optional string reason = 4;</code>
     */
    public com.google.protobuf.ByteString getReasonBytes() {
      java.lang.Object ref = reason_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        reason_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MESSAGE_FIELD_NUMBER = 5;
    private volatile java.lang.Object message_;
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public boolean hasMessage() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public java.lang.String getMessage() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          message_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * A human readable message indicating details about the transition.
     * +optional
     * </pre>
     *
     * <code>optional string message = 5;</code>
     */
    public com.google.protobuf.ByteString getMessageBytes() {
      java.lang.Object ref = message_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        message_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, message_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, type_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, status_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(3, getLastTransitionTime());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, reason_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, message_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ReplicationControllerCondition)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ReplicationControllerCondition other =
          (io.kubernetes.client.proto.V1.ReplicationControllerCondition) obj;

      boolean result = true;
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && (hasLastTransitionTime() == other.hasLastTransitionTime());
      if (hasLastTransitionTime()) {
        result = result && getLastTransitionTime().equals(other.getLastTransitionTime());
      }
      result = result && (hasReason() == other.hasReason());
      if (hasReason()) {
        result = result && getReason().equals(other.getReason());
      }
      result = result && (hasMessage() == other.hasMessage());
      if (hasMessage()) {
        result = result && getMessage().equals(other.getMessage());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      if (hasLastTransitionTime()) {
        hash = (37 * hash) + LASTTRANSITIONTIME_FIELD_NUMBER;
        hash = (53 * hash) + getLastTransitionTime().hashCode();
      }
      if (hasReason()) {
        hash = (37 * hash) + REASON_FIELD_NUMBER;
        hash = (53 * hash) + getReason().hashCode();
      }
      if (hasMessage()) {
        hash = (37 * hash) + MESSAGE_FIELD_NUMBER;
        hash = (53 * hash) + getMessage().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ReplicationControllerCondition prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ReplicationControllerCondition describes the state of a replication controller at a certain point.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerCondition}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ReplicationControllerCondition)
        io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ReplicationControllerCondition.class,
                io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ReplicationControllerCondition.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLastTransitionTimeFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        status_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        reason_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        message_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerCondition.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition build() {
        io.kubernetes.client.proto.V1.ReplicationControllerCondition result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition buildPartial() {
        io.kubernetes.client.proto.V1.ReplicationControllerCondition result =
            new io.kubernetes.client.proto.V1.ReplicationControllerCondition(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.status_ = status_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (lastTransitionTimeBuilder_ == null) {
          result.lastTransitionTime_ = lastTransitionTime_;
        } else {
          result.lastTransitionTime_ = lastTransitionTimeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.reason_ = reason_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.message_ = message_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ReplicationControllerCondition) {
          return mergeFrom((io.kubernetes.client.proto.V1.ReplicationControllerCondition) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ReplicationControllerCondition other) {
        if (other
            == io.kubernetes.client.proto.V1.ReplicationControllerCondition.getDefaultInstance())
          return this;
        if (other.hasType()) {
          bitField0_ |= 0x00000001;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasStatus()) {
          bitField0_ |= 0x00000002;
          status_ = other.status_;
          onChanged();
        }
        if (other.hasLastTransitionTime()) {
          mergeLastTransitionTime(other.getLastTransitionTime());
        }
        if (other.hasReason()) {
          bitField0_ |= 0x00000008;
          reason_ = other.reason_;
          onChanged();
        }
        if (other.hasMessage()) {
          bitField0_ |= 0x00000010;
          message_ = other.message_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ReplicationControllerCondition parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ReplicationControllerCondition)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000001);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type of replication controller condition.
       * </pre>
       *
       * <code>optional string type = 1;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object status_ = "";
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public java.lang.String getStatus() {
        java.lang.Object ref = status_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            status_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public com.google.protobuf.ByteString getStatusBytes() {
        java.lang.Object ref = status_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          status_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatus(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder clearStatus() {
        bitField0_ = (bitField0_ & ~0x00000002);
        status_ = getDefaultInstance().getStatus();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status of the condition, one of True, False, Unknown.
       * </pre>
       *
       * <code>optional string status = 2;</code>
       */
      public Builder setStatusBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        status_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time lastTransitionTime_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          lastTransitionTimeBuilder_;
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public boolean hasLastTransitionTime() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time getLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        } else {
          return lastTransitionTimeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder setLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          lastTransitionTime_ = value;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder setLastTransitionTime(
          io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = builderForValue.build();
          onChanged();
        } else {
          lastTransitionTimeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder mergeLastTransitionTime(io.kubernetes.client.proto.Meta.Time value) {
        if (lastTransitionTimeBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && lastTransitionTime_ != null
              && lastTransitionTime_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            lastTransitionTime_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(lastTransitionTime_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            lastTransitionTime_ = value;
          }
          onChanged();
        } else {
          lastTransitionTimeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public Builder clearLastTransitionTime() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTime_ = null;
          onChanged();
        } else {
          lastTransitionTimeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getLastTransitionTimeBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getLastTransitionTimeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getLastTransitionTimeOrBuilder() {
        if (lastTransitionTimeBuilder_ != null) {
          return lastTransitionTimeBuilder_.getMessageOrBuilder();
        } else {
          return lastTransitionTime_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : lastTransitionTime_;
        }
      }
      /**
       *
       *
       * <pre>
       * The last time the condition transitioned from one status to another.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getLastTransitionTimeFieldBuilder() {
        if (lastTransitionTimeBuilder_ == null) {
          lastTransitionTimeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getLastTransitionTime(), getParentForChildren(), isClean());
          lastTransitionTime_ = null;
        }
        return lastTransitionTimeBuilder_;
      }

      private java.lang.Object reason_ = "";
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public boolean hasReason() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public java.lang.String getReason() {
        java.lang.Object ref = reason_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            reason_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public com.google.protobuf.ByteString getReasonBytes() {
        java.lang.Object ref = reason_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          reason_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReason(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder clearReason() {
        bitField0_ = (bitField0_ & ~0x00000008);
        reason_ = getDefaultInstance().getReason();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reason for the condition's last transition.
       * +optional
       * </pre>
       *
       * <code>optional string reason = 4;</code>
       */
      public Builder setReasonBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        reason_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object message_ = "";
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public boolean hasMessage() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public java.lang.String getMessage() {
        java.lang.Object ref = message_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            message_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public com.google.protobuf.ByteString getMessageBytes() {
        java.lang.Object ref = message_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          message_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder setMessage(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        message_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder clearMessage() {
        bitField0_ = (bitField0_ & ~0x00000010);
        message_ = getDefaultInstance().getMessage();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A human readable message indicating details about the transition.
       * +optional
       * </pre>
       *
       * <code>optional string message = 5;</code>
       */
      public Builder setMessageBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        message_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ReplicationControllerCondition)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ReplicationControllerCondition)
    private static final io.kubernetes.client.proto.V1.ReplicationControllerCondition
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ReplicationControllerCondition();
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerCondition
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ReplicationControllerCondition> PARSER =
        new com.google.protobuf.AbstractParser<ReplicationControllerCondition>() {
          @java.lang.Override
          public ReplicationControllerCondition parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ReplicationControllerCondition(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ReplicationControllerCondition> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReplicationControllerCondition> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ReplicationControllerCondition
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ReplicationControllerListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ReplicationControllerList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ReplicationController> getItemsList();
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationController getItems(int index);
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ReplicationControllerList is a collection of replication controllers.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerList}
   */
  public static final class ReplicationControllerList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ReplicationControllerList)
      ReplicationControllerListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ReplicationControllerList.newBuilder() to construct.
    private ReplicationControllerList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ReplicationControllerList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ReplicationControllerList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.ReplicationController>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ReplicationController.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ReplicationControllerList.class,
              io.kubernetes.client.proto.V1.ReplicationControllerList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ReplicationController> items_;
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ReplicationController> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationController getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of replication controllers.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder getItemsOrBuilder(
        int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ReplicationControllerList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ReplicationControllerList other =
          (io.kubernetes.client.proto.V1.ReplicationControllerList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ReplicationControllerList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ReplicationControllerList is a collection of replication controllers.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ReplicationControllerList)
        io.kubernetes.client.proto.V1.ReplicationControllerListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ReplicationControllerList.class,
                io.kubernetes.client.proto.V1.ReplicationControllerList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ReplicationControllerList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerList build() {
        io.kubernetes.client.proto.V1.ReplicationControllerList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerList buildPartial() {
        io.kubernetes.client.proto.V1.ReplicationControllerList result =
            new io.kubernetes.client.proto.V1.ReplicationControllerList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ReplicationControllerList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ReplicationControllerList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ReplicationControllerList other) {
        if (other == io.kubernetes.client.proto.V1.ReplicationControllerList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ReplicationControllerList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ReplicationControllerList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ReplicationController> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ReplicationController>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationController,
              io.kubernetes.client.proto.V1.ReplicationController.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ReplicationController> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationController getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ReplicationController value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ReplicationController.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ReplicationController value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ReplicationController value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.ReplicationController.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ReplicationController.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ReplicationController>
              values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationController.Builder getItemsBuilder(
          int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder getItemsOrBuilder(
          int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationController.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ReplicationController.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ReplicationController.Builder addItemsBuilder(
          int index) {
        return getItemsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.ReplicationController.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of replication controllers.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationController items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ReplicationController.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationController,
              io.kubernetes.client.proto.V1.ReplicationController.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ReplicationController,
                  io.kubernetes.client.proto.V1.ReplicationController.Builder,
                  io.kubernetes.client.proto.V1.ReplicationControllerOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ReplicationControllerList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ReplicationControllerList)
    private static final io.kubernetes.client.proto.V1.ReplicationControllerList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ReplicationControllerList();
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ReplicationControllerList> PARSER =
        new com.google.protobuf.AbstractParser<ReplicationControllerList>() {
          @java.lang.Override
          public ReplicationControllerList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ReplicationControllerList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ReplicationControllerList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReplicationControllerList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ReplicationControllerList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ReplicationControllerSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ReplicationControllerSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Replicas is the number of desired replicas.
     * This is a pointer to distinguish between explicit zero and unspecified.
     * Defaults to 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * +optional
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    boolean hasReplicas();
    /**
     *
     *
     * <pre>
     * Replicas is the number of desired replicas.
     * This is a pointer to distinguish between explicit zero and unspecified.
     * Defaults to 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * +optional
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    int getReplicas();

    /**
     *
     *
     * <pre>
     * Minimum number of seconds for which a newly created pod should be ready
     * without any of its container crashing, for it to be considered available.
     * Defaults to 0 (pod will be considered available as soon as it is ready)
     * +optional
     * </pre>
     *
     * <code>optional int32 minReadySeconds = 4;</code>
     */
    boolean hasMinReadySeconds();
    /**
     *
     *
     * <pre>
     * Minimum number of seconds for which a newly created pod should be ready
     * without any of its container crashing, for it to be considered available.
     * Defaults to 0 (pod will be considered available as soon as it is ready)
     * +optional
     * </pre>
     *
     * <code>optional int32 minReadySeconds = 4;</code>
     */
    int getMinReadySeconds();

    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    int getSelectorCount();
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    boolean containsSelector(java.lang.String key);
    /** Use {@link #getSelectorMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getSelector();
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getSelectorMap();
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.lang.String getSelectorOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.lang.String getSelectorOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    boolean hasTemplate();
    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate();
    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ReplicationControllerSpec is the specification of a replication controller.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerSpec}
   */
  public static final class ReplicationControllerSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ReplicationControllerSpec)
      ReplicationControllerSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ReplicationControllerSpec.newBuilder() to construct.
    private ReplicationControllerSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ReplicationControllerSpec() {
      replicas_ = 0;
      minReadySeconds_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ReplicationControllerSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                replicas_ = input.readInt32();
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  selector_ =
                      com.google.protobuf.MapField.newMapField(
                          SelectorDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000004;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> selector__ =
                    input.readMessage(
                        SelectorDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                selector_.getMutableMap().put(selector__.getKey(), selector__.getValue());
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.PodTemplateSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = template_.toBuilder();
                }
                template_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodTemplateSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(template_);
                  template_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000002;
                minReadySeconds_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 2:
          return internalGetSelector();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ReplicationControllerSpec.class,
              io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder.class);
    }

    private int bitField0_;
    public static final int REPLICAS_FIELD_NUMBER = 1;
    private int replicas_;
    /**
     *
     *
     * <pre>
     * Replicas is the number of desired replicas.
     * This is a pointer to distinguish between explicit zero and unspecified.
     * Defaults to 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * +optional
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    public boolean hasReplicas() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Replicas is the number of desired replicas.
     * This is a pointer to distinguish between explicit zero and unspecified.
     * Defaults to 1.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * +optional
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    public int getReplicas() {
      return replicas_;
    }

    public static final int MINREADYSECONDS_FIELD_NUMBER = 4;
    private int minReadySeconds_;
    /**
     *
     *
     * <pre>
     * Minimum number of seconds for which a newly created pod should be ready
     * without any of its container crashing, for it to be considered available.
     * Defaults to 0 (pod will be considered available as soon as it is ready)
     * +optional
     * </pre>
     *
     * <code>optional int32 minReadySeconds = 4;</code>
     */
    public boolean hasMinReadySeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Minimum number of seconds for which a newly created pod should be ready
     * without any of its container crashing, for it to be considered available.
     * Defaults to 0 (pod will be considered available as soon as it is ready)
     * +optional
     * </pre>
     *
     * <code>optional int32 minReadySeconds = 4;</code>
     */
    public int getMinReadySeconds() {
      return minReadySeconds_;
    }

    public static final int SELECTOR_FIELD_NUMBER = 2;

    private static final class SelectorDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> selector_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetSelector() {
      if (selector_ == null) {
        return com.google.protobuf.MapField.emptyMapField(SelectorDefaultEntryHolder.defaultEntry);
      }
      return selector_;
    }

    public int getSelectorCount() {
      return internalGetSelector().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public boolean containsSelector(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetSelector().getMap().containsKey(key);
    }
    /** Use {@link #getSelectorMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getSelector() {
      return getSelectorMap();
    }
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getSelectorMap() {
      return internalGetSelector().getMap();
    }
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.lang.String getSelectorOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Selector is a label query over pods that should match the Replicas count.
     * If Selector is empty, it is defaulted to the labels present on the Pod template.
     * Label keys and values that must match in order to be controlled by this replication
     * controller, if empty defaulted to labels on Pod template.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.lang.String getSelectorOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int TEMPLATE_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.PodTemplateSpec template_;
    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    public boolean hasTemplate() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate() {
      return template_ == null
          ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
          : template_;
    }
    /**
     *
     *
     * <pre>
     * Template is the object that describes the pod that will be created if
     * insufficient replicas are detected. This takes precedence over a TemplateRef.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
     */
    public io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder() {
      return template_ == null
          ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
          : template_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, replicas_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetSelector(), SelectorDefaultEntryHolder.defaultEntry, 2);
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getTemplate());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(4, minReadySeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, replicas_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetSelector().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> selector__ =
            SelectorDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, selector__);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getTemplate());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, minReadySeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ReplicationControllerSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ReplicationControllerSpec other =
          (io.kubernetes.client.proto.V1.ReplicationControllerSpec) obj;

      boolean result = true;
      result = result && (hasReplicas() == other.hasReplicas());
      if (hasReplicas()) {
        result = result && (getReplicas() == other.getReplicas());
      }
      result = result && (hasMinReadySeconds() == other.hasMinReadySeconds());
      if (hasMinReadySeconds()) {
        result = result && (getMinReadySeconds() == other.getMinReadySeconds());
      }
      result = result && internalGetSelector().equals(other.internalGetSelector());
      result = result && (hasTemplate() == other.hasTemplate());
      if (hasTemplate()) {
        result = result && getTemplate().equals(other.getTemplate());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReplicas()) {
        hash = (37 * hash) + REPLICAS_FIELD_NUMBER;
        hash = (53 * hash) + getReplicas();
      }
      if (hasMinReadySeconds()) {
        hash = (37 * hash) + MINREADYSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + getMinReadySeconds();
      }
      if (!internalGetSelector().getMap().isEmpty()) {
        hash = (37 * hash) + SELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSelector().hashCode();
      }
      if (hasTemplate()) {
        hash = (37 * hash) + TEMPLATE_FIELD_NUMBER;
        hash = (53 * hash) + getTemplate().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ReplicationControllerSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ReplicationControllerSpec is the specification of a replication controller.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ReplicationControllerSpec)
        io.kubernetes.client.proto.V1.ReplicationControllerSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 2:
            return internalGetSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMutableSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ReplicationControllerSpec.class,
                io.kubernetes.client.proto.V1.ReplicationControllerSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ReplicationControllerSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getTemplateFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        replicas_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        minReadySeconds_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        internalGetMutableSelector().clear();
        if (templateBuilder_ == null) {
          template_ = null;
        } else {
          templateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerSpec build() {
        io.kubernetes.client.proto.V1.ReplicationControllerSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerSpec buildPartial() {
        io.kubernetes.client.proto.V1.ReplicationControllerSpec result =
            new io.kubernetes.client.proto.V1.ReplicationControllerSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.replicas_ = replicas_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.minReadySeconds_ = minReadySeconds_;
        result.selector_ = internalGetSelector();
        result.selector_.makeImmutable();
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        if (templateBuilder_ == null) {
          result.template_ = template_;
        } else {
          result.template_ = templateBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ReplicationControllerSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.ReplicationControllerSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ReplicationControllerSpec other) {
        if (other == io.kubernetes.client.proto.V1.ReplicationControllerSpec.getDefaultInstance())
          return this;
        if (other.hasReplicas()) {
          setReplicas(other.getReplicas());
        }
        if (other.hasMinReadySeconds()) {
          setMinReadySeconds(other.getMinReadySeconds());
        }
        internalGetMutableSelector().mergeFrom(other.internalGetSelector());
        if (other.hasTemplate()) {
          mergeTemplate(other.getTemplate());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ReplicationControllerSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ReplicationControllerSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int replicas_;
      /**
       *
       *
       * <pre>
       * Replicas is the number of desired replicas.
       * This is a pointer to distinguish between explicit zero and unspecified.
       * Defaults to 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * +optional
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public boolean hasReplicas() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Replicas is the number of desired replicas.
       * This is a pointer to distinguish between explicit zero and unspecified.
       * Defaults to 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * +optional
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public int getReplicas() {
        return replicas_;
      }
      /**
       *
       *
       * <pre>
       * Replicas is the number of desired replicas.
       * This is a pointer to distinguish between explicit zero and unspecified.
       * Defaults to 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * +optional
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public Builder setReplicas(int value) {
        bitField0_ |= 0x00000001;
        replicas_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Replicas is the number of desired replicas.
       * This is a pointer to distinguish between explicit zero and unspecified.
       * Defaults to 1.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * +optional
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public Builder clearReplicas() {
        bitField0_ = (bitField0_ & ~0x00000001);
        replicas_ = 0;
        onChanged();
        return this;
      }

      private int minReadySeconds_;
      /**
       *
       *
       * <pre>
       * Minimum number of seconds for which a newly created pod should be ready
       * without any of its container crashing, for it to be considered available.
       * Defaults to 0 (pod will be considered available as soon as it is ready)
       * +optional
       * </pre>
       *
       * <code>optional int32 minReadySeconds = 4;</code>
       */
      public boolean hasMinReadySeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Minimum number of seconds for which a newly created pod should be ready
       * without any of its container crashing, for it to be considered available.
       * Defaults to 0 (pod will be considered available as soon as it is ready)
       * +optional
       * </pre>
       *
       * <code>optional int32 minReadySeconds = 4;</code>
       */
      public int getMinReadySeconds() {
        return minReadySeconds_;
      }
      /**
       *
       *
       * <pre>
       * Minimum number of seconds for which a newly created pod should be ready
       * without any of its container crashing, for it to be considered available.
       * Defaults to 0 (pod will be considered available as soon as it is ready)
       * +optional
       * </pre>
       *
       * <code>optional int32 minReadySeconds = 4;</code>
       */
      public Builder setMinReadySeconds(int value) {
        bitField0_ |= 0x00000002;
        minReadySeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Minimum number of seconds for which a newly created pod should be ready
       * without any of its container crashing, for it to be considered available.
       * Defaults to 0 (pod will be considered available as soon as it is ready)
       * +optional
       * </pre>
       *
       * <code>optional int32 minReadySeconds = 4;</code>
       */
      public Builder clearMinReadySeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        minReadySeconds_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> selector_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetSelector() {
        if (selector_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SelectorDefaultEntryHolder.defaultEntry);
        }
        return selector_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableSelector() {
        onChanged();
        ;
        if (selector_ == null) {
          selector_ =
              com.google.protobuf.MapField.newMapField(SelectorDefaultEntryHolder.defaultEntry);
        }
        if (!selector_.isMutable()) {
          selector_ = selector_.copy();
        }
        return selector_;
      }

      public int getSelectorCount() {
        return internalGetSelector().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public boolean containsSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetSelector().getMap().containsKey(key);
      }
      /** Use {@link #getSelectorMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getSelector() {
        return getSelectorMap();
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getSelectorMap() {
        return internalGetSelector().getMap();
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.lang.String getSelectorOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.lang.String getSelectorOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSelector() {
        internalGetMutableSelector().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder removeSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableSelector().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableSelector() {
        return internalGetMutableSelector().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder putSelector(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableSelector().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Selector is a label query over pods that should match the Replicas count.
       * If Selector is empty, it is defaulted to the labels present on the Pod template.
       * Label keys and values that must match in order to be controlled by this replication
       * controller, if empty defaulted to labels on Pod template.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder putAllSelector(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableSelector().getMutableMap().putAll(values);
        return this;
      }

      private io.kubernetes.client.proto.V1.PodTemplateSpec template_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplateSpec,
              io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
              io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>
          templateBuilder_;
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public boolean hasTemplate() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpec getTemplate() {
        if (templateBuilder_ == null) {
          return template_ == null
              ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
              : template_;
        } else {
          return templateBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public Builder setTemplate(io.kubernetes.client.proto.V1.PodTemplateSpec value) {
        if (templateBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          template_ = value;
          onChanged();
        } else {
          templateBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public Builder setTemplate(
          io.kubernetes.client.proto.V1.PodTemplateSpec.Builder builderForValue) {
        if (templateBuilder_ == null) {
          template_ = builderForValue.build();
          onChanged();
        } else {
          templateBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public Builder mergeTemplate(io.kubernetes.client.proto.V1.PodTemplateSpec value) {
        if (templateBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && template_ != null
              && template_ != io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()) {
            template_ =
                io.kubernetes.client.proto.V1.PodTemplateSpec.newBuilder(template_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            template_ = value;
          }
          onChanged();
        } else {
          templateBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public Builder clearTemplate() {
        if (templateBuilder_ == null) {
          template_ = null;
          onChanged();
        } else {
          templateBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpec.Builder getTemplateBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getTemplateFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      public io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder getTemplateOrBuilder() {
        if (templateBuilder_ != null) {
          return templateBuilder_.getMessageOrBuilder();
        } else {
          return template_ == null
              ? io.kubernetes.client.proto.V1.PodTemplateSpec.getDefaultInstance()
              : template_;
        }
      }
      /**
       *
       *
       * <pre>
       * Template is the object that describes the pod that will be created if
       * insufficient replicas are detected. This takes precedence over a TemplateRef.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodTemplateSpec template = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodTemplateSpec,
              io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
              io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>
          getTemplateFieldBuilder() {
        if (templateBuilder_ == null) {
          templateBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodTemplateSpec,
                  io.kubernetes.client.proto.V1.PodTemplateSpec.Builder,
                  io.kubernetes.client.proto.V1.PodTemplateSpecOrBuilder>(
                  getTemplate(), getParentForChildren(), isClean());
          template_ = null;
        }
        return templateBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ReplicationControllerSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ReplicationControllerSpec)
    private static final io.kubernetes.client.proto.V1.ReplicationControllerSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ReplicationControllerSpec();
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ReplicationControllerSpec> PARSER =
        new com.google.protobuf.AbstractParser<ReplicationControllerSpec>() {
          @java.lang.Override
          public ReplicationControllerSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ReplicationControllerSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ReplicationControllerSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReplicationControllerSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ReplicationControllerSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ReplicationControllerStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ReplicationControllerStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Replicas is the most recently oberved number of replicas.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    boolean hasReplicas();
    /**
     *
     *
     * <pre>
     * Replicas is the most recently oberved number of replicas.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    int getReplicas();

    /**
     *
     *
     * <pre>
     * The number of pods that have labels matching the labels of the pod template of the replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 fullyLabeledReplicas = 2;</code>
     */
    boolean hasFullyLabeledReplicas();
    /**
     *
     *
     * <pre>
     * The number of pods that have labels matching the labels of the pod template of the replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 fullyLabeledReplicas = 2;</code>
     */
    int getFullyLabeledReplicas();

    /**
     *
     *
     * <pre>
     * The number of ready replicas for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 readyReplicas = 4;</code>
     */
    boolean hasReadyReplicas();
    /**
     *
     *
     * <pre>
     * The number of ready replicas for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 readyReplicas = 4;</code>
     */
    int getReadyReplicas();

    /**
     *
     *
     * <pre>
     * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 availableReplicas = 5;</code>
     */
    boolean hasAvailableReplicas();
    /**
     *
     *
     * <pre>
     * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 availableReplicas = 5;</code>
     */
    int getAvailableReplicas();

    /**
     *
     *
     * <pre>
     * ObservedGeneration reflects the generation of the most recently observed replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int64 observedGeneration = 3;</code>
     */
    boolean hasObservedGeneration();
    /**
     *
     *
     * <pre>
     * ObservedGeneration reflects the generation of the most recently observed replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int64 observedGeneration = 3;</code>
     */
    long getObservedGeneration();

    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition>
        getConditionsList();
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerCondition getConditions(int index);
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    int getConditionsCount();
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>
        getConditionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder getConditionsOrBuilder(
        int index);
  }
  /**
   *
   *
   * <pre>
   * ReplicationControllerStatus represents the current status of a replication
   * controller.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerStatus}
   */
  public static final class ReplicationControllerStatus
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ReplicationControllerStatus)
      ReplicationControllerStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ReplicationControllerStatus.newBuilder() to construct.
    private ReplicationControllerStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ReplicationControllerStatus() {
      replicas_ = 0;
      fullyLabeledReplicas_ = 0;
      readyReplicas_ = 0;
      availableReplicas_ = 0;
      observedGeneration_ = 0L;
      conditions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ReplicationControllerStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                replicas_ = input.readInt32();
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                fullyLabeledReplicas_ = input.readInt32();
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000010;
                observedGeneration_ = input.readInt64();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000004;
                readyReplicas_ = input.readInt32();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000008;
                availableReplicas_ = input.readInt32();
                break;
              }
            case 50:
              {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  conditions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.ReplicationControllerCondition>();
                  mutable_bitField0_ |= 0x00000020;
                }
                conditions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ReplicationControllerCondition.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
          conditions_ = java.util.Collections.unmodifiableList(conditions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ReplicationControllerStatus.class,
              io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder.class);
    }

    private int bitField0_;
    public static final int REPLICAS_FIELD_NUMBER = 1;
    private int replicas_;
    /**
     *
     *
     * <pre>
     * Replicas is the most recently oberved number of replicas.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    public boolean hasReplicas() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Replicas is the most recently oberved number of replicas.
     * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
     * </pre>
     *
     * <code>optional int32 replicas = 1;</code>
     */
    public int getReplicas() {
      return replicas_;
    }

    public static final int FULLYLABELEDREPLICAS_FIELD_NUMBER = 2;
    private int fullyLabeledReplicas_;
    /**
     *
     *
     * <pre>
     * The number of pods that have labels matching the labels of the pod template of the replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 fullyLabeledReplicas = 2;</code>
     */
    public boolean hasFullyLabeledReplicas() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The number of pods that have labels matching the labels of the pod template of the replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 fullyLabeledReplicas = 2;</code>
     */
    public int getFullyLabeledReplicas() {
      return fullyLabeledReplicas_;
    }

    public static final int READYREPLICAS_FIELD_NUMBER = 4;
    private int readyReplicas_;
    /**
     *
     *
     * <pre>
     * The number of ready replicas for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 readyReplicas = 4;</code>
     */
    public boolean hasReadyReplicas() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The number of ready replicas for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 readyReplicas = 4;</code>
     */
    public int getReadyReplicas() {
      return readyReplicas_;
    }

    public static final int AVAILABLEREPLICAS_FIELD_NUMBER = 5;
    private int availableReplicas_;
    /**
     *
     *
     * <pre>
     * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 availableReplicas = 5;</code>
     */
    public boolean hasAvailableReplicas() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int32 availableReplicas = 5;</code>
     */
    public int getAvailableReplicas() {
      return availableReplicas_;
    }

    public static final int OBSERVEDGENERATION_FIELD_NUMBER = 3;
    private long observedGeneration_;
    /**
     *
     *
     * <pre>
     * ObservedGeneration reflects the generation of the most recently observed replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int64 observedGeneration = 3;</code>
     */
    public boolean hasObservedGeneration() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * ObservedGeneration reflects the generation of the most recently observed replication controller.
     * +optional
     * </pre>
     *
     * <code>optional int64 observedGeneration = 3;</code>
     */
    public long getObservedGeneration() {
      return observedGeneration_;
    }

    public static final int CONDITIONS_FIELD_NUMBER = 6;
    private java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition>
        conditions_;
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition>
        getConditionsList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>
        getConditionsOrBuilderList() {
      return conditions_;
    }
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    public int getConditionsCount() {
      return conditions_.size();
    }
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerCondition getConditions(int index) {
      return conditions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Represents the latest available observations of a replication controller's current state.
     * +optional
     * +patchMergeKey=type
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;</code>
     */
    public io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder
        getConditionsOrBuilder(int index) {
      return conditions_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, replicas_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, fullyLabeledReplicas_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(3, observedGeneration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(4, readyReplicas_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(5, availableReplicas_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        output.writeMessage(6, conditions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, replicas_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(2, fullyLabeledReplicas_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(3, observedGeneration_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(4, readyReplicas_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, availableReplicas_);
      }
      for (int i = 0; i < conditions_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, conditions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ReplicationControllerStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ReplicationControllerStatus other =
          (io.kubernetes.client.proto.V1.ReplicationControllerStatus) obj;

      boolean result = true;
      result = result && (hasReplicas() == other.hasReplicas());
      if (hasReplicas()) {
        result = result && (getReplicas() == other.getReplicas());
      }
      result = result && (hasFullyLabeledReplicas() == other.hasFullyLabeledReplicas());
      if (hasFullyLabeledReplicas()) {
        result = result && (getFullyLabeledReplicas() == other.getFullyLabeledReplicas());
      }
      result = result && (hasReadyReplicas() == other.hasReadyReplicas());
      if (hasReadyReplicas()) {
        result = result && (getReadyReplicas() == other.getReadyReplicas());
      }
      result = result && (hasAvailableReplicas() == other.hasAvailableReplicas());
      if (hasAvailableReplicas()) {
        result = result && (getAvailableReplicas() == other.getAvailableReplicas());
      }
      result = result && (hasObservedGeneration() == other.hasObservedGeneration());
      if (hasObservedGeneration()) {
        result = result && (getObservedGeneration() == other.getObservedGeneration());
      }
      result = result && getConditionsList().equals(other.getConditionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReplicas()) {
        hash = (37 * hash) + REPLICAS_FIELD_NUMBER;
        hash = (53 * hash) + getReplicas();
      }
      if (hasFullyLabeledReplicas()) {
        hash = (37 * hash) + FULLYLABELEDREPLICAS_FIELD_NUMBER;
        hash = (53 * hash) + getFullyLabeledReplicas();
      }
      if (hasReadyReplicas()) {
        hash = (37 * hash) + READYREPLICAS_FIELD_NUMBER;
        hash = (53 * hash) + getReadyReplicas();
      }
      if (hasAvailableReplicas()) {
        hash = (37 * hash) + AVAILABLEREPLICAS_FIELD_NUMBER;
        hash = (53 * hash) + getAvailableReplicas();
      }
      if (hasObservedGeneration()) {
        hash = (37 * hash) + OBSERVEDGENERATION_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getObservedGeneration());
      }
      if (getConditionsCount() > 0) {
        hash = (37 * hash) + CONDITIONS_FIELD_NUMBER;
        hash = (53 * hash) + getConditionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ReplicationControllerStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ReplicationControllerStatus represents the current status of a replication
     * controller.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ReplicationControllerStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ReplicationControllerStatus)
        io.kubernetes.client.proto.V1.ReplicationControllerStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ReplicationControllerStatus.class,
                io.kubernetes.client.proto.V1.ReplicationControllerStatus.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ReplicationControllerStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getConditionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        replicas_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        fullyLabeledReplicas_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        readyReplicas_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        availableReplicas_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        observedGeneration_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerStatus build() {
        io.kubernetes.client.proto.V1.ReplicationControllerStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ReplicationControllerStatus buildPartial() {
        io.kubernetes.client.proto.V1.ReplicationControllerStatus result =
            new io.kubernetes.client.proto.V1.ReplicationControllerStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.replicas_ = replicas_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fullyLabeledReplicas_ = fullyLabeledReplicas_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.readyReplicas_ = readyReplicas_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.availableReplicas_ = availableReplicas_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.observedGeneration_ = observedGeneration_;
        if (conditionsBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)) {
            conditions_ = java.util.Collections.unmodifiableList(conditions_);
            bitField0_ = (bitField0_ & ~0x00000020);
          }
          result.conditions_ = conditions_;
        } else {
          result.conditions_ = conditionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ReplicationControllerStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.ReplicationControllerStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ReplicationControllerStatus other) {
        if (other == io.kubernetes.client.proto.V1.ReplicationControllerStatus.getDefaultInstance())
          return this;
        if (other.hasReplicas()) {
          setReplicas(other.getReplicas());
        }
        if (other.hasFullyLabeledReplicas()) {
          setFullyLabeledReplicas(other.getFullyLabeledReplicas());
        }
        if (other.hasReadyReplicas()) {
          setReadyReplicas(other.getReadyReplicas());
        }
        if (other.hasAvailableReplicas()) {
          setAvailableReplicas(other.getAvailableReplicas());
        }
        if (other.hasObservedGeneration()) {
          setObservedGeneration(other.getObservedGeneration());
        }
        if (conditionsBuilder_ == null) {
          if (!other.conditions_.isEmpty()) {
            if (conditions_.isEmpty()) {
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000020);
            } else {
              ensureConditionsIsMutable();
              conditions_.addAll(other.conditions_);
            }
            onChanged();
          }
        } else {
          if (!other.conditions_.isEmpty()) {
            if (conditionsBuilder_.isEmpty()) {
              conditionsBuilder_.dispose();
              conditionsBuilder_ = null;
              conditions_ = other.conditions_;
              bitField0_ = (bitField0_ & ~0x00000020);
              conditionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getConditionsFieldBuilder()
                      : null;
            } else {
              conditionsBuilder_.addAllMessages(other.conditions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ReplicationControllerStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ReplicationControllerStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int replicas_;
      /**
       *
       *
       * <pre>
       * Replicas is the most recently oberved number of replicas.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public boolean hasReplicas() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Replicas is the most recently oberved number of replicas.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public int getReplicas() {
        return replicas_;
      }
      /**
       *
       *
       * <pre>
       * Replicas is the most recently oberved number of replicas.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public Builder setReplicas(int value) {
        bitField0_ |= 0x00000001;
        replicas_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Replicas is the most recently oberved number of replicas.
       * More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#what-is-a-replicationcontroller
       * </pre>
       *
       * <code>optional int32 replicas = 1;</code>
       */
      public Builder clearReplicas() {
        bitField0_ = (bitField0_ & ~0x00000001);
        replicas_ = 0;
        onChanged();
        return this;
      }

      private int fullyLabeledReplicas_;
      /**
       *
       *
       * <pre>
       * The number of pods that have labels matching the labels of the pod template of the replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 fullyLabeledReplicas = 2;</code>
       */
      public boolean hasFullyLabeledReplicas() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The number of pods that have labels matching the labels of the pod template of the replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 fullyLabeledReplicas = 2;</code>
       */
      public int getFullyLabeledReplicas() {
        return fullyLabeledReplicas_;
      }
      /**
       *
       *
       * <pre>
       * The number of pods that have labels matching the labels of the pod template of the replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 fullyLabeledReplicas = 2;</code>
       */
      public Builder setFullyLabeledReplicas(int value) {
        bitField0_ |= 0x00000002;
        fullyLabeledReplicas_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The number of pods that have labels matching the labels of the pod template of the replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 fullyLabeledReplicas = 2;</code>
       */
      public Builder clearFullyLabeledReplicas() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fullyLabeledReplicas_ = 0;
        onChanged();
        return this;
      }

      private int readyReplicas_;
      /**
       *
       *
       * <pre>
       * The number of ready replicas for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 readyReplicas = 4;</code>
       */
      public boolean hasReadyReplicas() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The number of ready replicas for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 readyReplicas = 4;</code>
       */
      public int getReadyReplicas() {
        return readyReplicas_;
      }
      /**
       *
       *
       * <pre>
       * The number of ready replicas for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 readyReplicas = 4;</code>
       */
      public Builder setReadyReplicas(int value) {
        bitField0_ |= 0x00000004;
        readyReplicas_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The number of ready replicas for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 readyReplicas = 4;</code>
       */
      public Builder clearReadyReplicas() {
        bitField0_ = (bitField0_ & ~0x00000004);
        readyReplicas_ = 0;
        onChanged();
        return this;
      }

      private int availableReplicas_;
      /**
       *
       *
       * <pre>
       * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 availableReplicas = 5;</code>
       */
      public boolean hasAvailableReplicas() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 availableReplicas = 5;</code>
       */
      public int getAvailableReplicas() {
        return availableReplicas_;
      }
      /**
       *
       *
       * <pre>
       * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 availableReplicas = 5;</code>
       */
      public Builder setAvailableReplicas(int value) {
        bitField0_ |= 0x00000008;
        availableReplicas_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The number of available replicas (ready for at least minReadySeconds) for this replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int32 availableReplicas = 5;</code>
       */
      public Builder clearAvailableReplicas() {
        bitField0_ = (bitField0_ & ~0x00000008);
        availableReplicas_ = 0;
        onChanged();
        return this;
      }

      private long observedGeneration_;
      /**
       *
       *
       * <pre>
       * ObservedGeneration reflects the generation of the most recently observed replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int64 observedGeneration = 3;</code>
       */
      public boolean hasObservedGeneration() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * ObservedGeneration reflects the generation of the most recently observed replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int64 observedGeneration = 3;</code>
       */
      public long getObservedGeneration() {
        return observedGeneration_;
      }
      /**
       *
       *
       * <pre>
       * ObservedGeneration reflects the generation of the most recently observed replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int64 observedGeneration = 3;</code>
       */
      public Builder setObservedGeneration(long value) {
        bitField0_ |= 0x00000010;
        observedGeneration_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ObservedGeneration reflects the generation of the most recently observed replication controller.
       * +optional
       * </pre>
       *
       * <code>optional int64 observedGeneration = 3;</code>
       */
      public Builder clearObservedGeneration() {
        bitField0_ = (bitField0_ & ~0x00000010);
        observedGeneration_ = 0L;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition>
          conditions_ = java.util.Collections.emptyList();

      private void ensureConditionsIsMutable() {
        if (!((bitField0_ & 0x00000020) == 0x00000020)) {
          conditions_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ReplicationControllerCondition>(
                  conditions_);
          bitField0_ |= 0x00000020;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerCondition,
              io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>
          conditionsBuilder_;

      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition>
          getConditionsList() {
        if (conditionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(conditions_);
        } else {
          return conditionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public int getConditionsCount() {
        if (conditionsBuilder_ == null) {
          return conditions_.size();
        } else {
          return conditionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition getConditions(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder setConditions(
          int index, io.kubernetes.client.proto.V1.ReplicationControllerCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.set(index, value);
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder setConditions(
          int index,
          io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.set(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.ReplicationControllerCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder addConditions(
          int index, io.kubernetes.client.proto.V1.ReplicationControllerCondition value) {
        if (conditionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureConditionsIsMutable();
          conditions_.add(index, value);
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder addConditions(
          io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder addConditions(
          int index,
          io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder builderForValue) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.add(index, builderForValue.build());
          onChanged();
        } else {
          conditionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder addAllConditions(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ReplicationControllerCondition>
              values) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, conditions_);
          onChanged();
        } else {
          conditionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder clearConditions() {
        if (conditionsBuilder_ == null) {
          conditions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000020);
          onChanged();
        } else {
          conditionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public Builder removeConditions(int index) {
        if (conditionsBuilder_ == null) {
          ensureConditionsIsMutable();
          conditions_.remove(index);
          onChanged();
        } else {
          conditionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder
          getConditionsBuilder(int index) {
        return getConditionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder
          getConditionsOrBuilder(int index) {
        if (conditionsBuilder_ == null) {
          return conditions_.get(index);
        } else {
          return conditionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>
          getConditionsOrBuilderList() {
        if (conditionsBuilder_ != null) {
          return conditionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(conditions_);
        }
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder
          addConditionsBuilder() {
        return getConditionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1.ReplicationControllerCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder
          addConditionsBuilder(int index) {
        return getConditionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1.ReplicationControllerCondition.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Represents the latest available observations of a replication controller's current state.
       * +optional
       * +patchMergeKey=type
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ReplicationControllerCondition conditions = 6;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder>
          getConditionsBuilderList() {
        return getConditionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ReplicationControllerCondition,
              io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder,
              io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>
          getConditionsFieldBuilder() {
        if (conditionsBuilder_ == null) {
          conditionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ReplicationControllerCondition,
                  io.kubernetes.client.proto.V1.ReplicationControllerCondition.Builder,
                  io.kubernetes.client.proto.V1.ReplicationControllerConditionOrBuilder>(
                  conditions_,
                  ((bitField0_ & 0x00000020) == 0x00000020),
                  getParentForChildren(),
                  isClean());
          conditions_ = null;
        }
        return conditionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ReplicationControllerStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ReplicationControllerStatus)
    private static final io.kubernetes.client.proto.V1.ReplicationControllerStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ReplicationControllerStatus();
    }

    public static io.kubernetes.client.proto.V1.ReplicationControllerStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ReplicationControllerStatus> PARSER =
        new com.google.protobuf.AbstractParser<ReplicationControllerStatus>() {
          @java.lang.Override
          public ReplicationControllerStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ReplicationControllerStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ReplicationControllerStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ReplicationControllerStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ReplicationControllerStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceFieldSelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceFieldSelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    boolean hasContainerName();
    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    java.lang.String getContainerName();
    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    com.google.protobuf.ByteString getContainerNameBytes();

    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    boolean hasResource();
    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    java.lang.String getResource();
    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    com.google.protobuf.ByteString getResourceBytes();

    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    boolean hasDivisor();
    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getDivisor();
    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    io.kubernetes.client.proto.Resource.QuantityOrBuilder getDivisorOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ResourceFieldSelector represents container resources (cpu, memory) and their output format
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceFieldSelector}
   */
  public static final class ResourceFieldSelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceFieldSelector)
      ResourceFieldSelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceFieldSelector.newBuilder() to construct.
    private ResourceFieldSelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceFieldSelector() {
      containerName_ = "";
      resource_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceFieldSelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                containerName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                resource_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.Resource.Quantity.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = divisor_.toBuilder();
                }
                divisor_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Resource.Quantity.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(divisor_);
                  divisor_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceFieldSelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceFieldSelector.class,
              io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder.class);
    }

    private int bitField0_;
    public static final int CONTAINERNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object containerName_;
    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    public boolean hasContainerName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    public java.lang.String getContainerName() {
      java.lang.Object ref = containerName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          containerName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Container name: required for volumes, optional for env vars
     * +optional
     * </pre>
     *
     * <code>optional string containerName = 1;</code>
     */
    public com.google.protobuf.ByteString getContainerNameBytes() {
      java.lang.Object ref = containerName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        containerName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int RESOURCE_FIELD_NUMBER = 2;
    private volatile java.lang.Object resource_;
    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    public boolean hasResource() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    public java.lang.String getResource() {
      java.lang.Object ref = resource_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          resource_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required: resource to select
     * </pre>
     *
     * <code>optional string resource = 2;</code>
     */
    public com.google.protobuf.ByteString getResourceBytes() {
      java.lang.Object ref = resource_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        resource_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DIVISOR_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.Resource.Quantity divisor_;
    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    public boolean hasDivisor() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getDivisor() {
      return divisor_ == null
          ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
          : divisor_;
    }
    /**
     *
     *
     * <pre>
     * Specifies the output format of the exposed resources, defaults to "1"
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
     */
    public io.kubernetes.client.proto.Resource.QuantityOrBuilder getDivisorOrBuilder() {
      return divisor_ == null
          ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
          : divisor_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, containerName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, resource_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getDivisor());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, containerName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, resource_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getDivisor());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceFieldSelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceFieldSelector other =
          (io.kubernetes.client.proto.V1.ResourceFieldSelector) obj;

      boolean result = true;
      result = result && (hasContainerName() == other.hasContainerName());
      if (hasContainerName()) {
        result = result && getContainerName().equals(other.getContainerName());
      }
      result = result && (hasResource() == other.hasResource());
      if (hasResource()) {
        result = result && getResource().equals(other.getResource());
      }
      result = result && (hasDivisor() == other.hasDivisor());
      if (hasDivisor()) {
        result = result && getDivisor().equals(other.getDivisor());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasContainerName()) {
        hash = (37 * hash) + CONTAINERNAME_FIELD_NUMBER;
        hash = (53 * hash) + getContainerName().hashCode();
      }
      if (hasResource()) {
        hash = (37 * hash) + RESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getResource().hashCode();
      }
      if (hasDivisor()) {
        hash = (37 * hash) + DIVISOR_FIELD_NUMBER;
        hash = (53 * hash) + getDivisor().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ResourceFieldSelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceFieldSelector represents container resources (cpu, memory) and their output format
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceFieldSelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceFieldSelector)
        io.kubernetes.client.proto.V1.ResourceFieldSelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceFieldSelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceFieldSelector.class,
                io.kubernetes.client.proto.V1.ResourceFieldSelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceFieldSelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getDivisorFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        containerName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        resource_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (divisorBuilder_ == null) {
          divisor_ = null;
        } else {
          divisorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceFieldSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceFieldSelector build() {
        io.kubernetes.client.proto.V1.ResourceFieldSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceFieldSelector buildPartial() {
        io.kubernetes.client.proto.V1.ResourceFieldSelector result =
            new io.kubernetes.client.proto.V1.ResourceFieldSelector(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.containerName_ = containerName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.resource_ = resource_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (divisorBuilder_ == null) {
          result.divisor_ = divisor_;
        } else {
          result.divisor_ = divisorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceFieldSelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceFieldSelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceFieldSelector other) {
        if (other == io.kubernetes.client.proto.V1.ResourceFieldSelector.getDefaultInstance())
          return this;
        if (other.hasContainerName()) {
          bitField0_ |= 0x00000001;
          containerName_ = other.containerName_;
          onChanged();
        }
        if (other.hasResource()) {
          bitField0_ |= 0x00000002;
          resource_ = other.resource_;
          onChanged();
        }
        if (other.hasDivisor()) {
          mergeDivisor(other.getDivisor());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceFieldSelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ResourceFieldSelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object containerName_ = "";
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public boolean hasContainerName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public java.lang.String getContainerName() {
        java.lang.Object ref = containerName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            containerName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public com.google.protobuf.ByteString getContainerNameBytes() {
        java.lang.Object ref = containerName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          containerName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public Builder setContainerName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        containerName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public Builder clearContainerName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        containerName_ = getDefaultInstance().getContainerName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Container name: required for volumes, optional for env vars
       * +optional
       * </pre>
       *
       * <code>optional string containerName = 1;</code>
       */
      public Builder setContainerNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        containerName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object resource_ = "";
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public boolean hasResource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public java.lang.String getResource() {
        java.lang.Object ref = resource_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            resource_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public com.google.protobuf.ByteString getResourceBytes() {
        java.lang.Object ref = resource_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          resource_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public Builder setResource(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        resource_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public Builder clearResource() {
        bitField0_ = (bitField0_ & ~0x00000002);
        resource_ = getDefaultInstance().getResource();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required: resource to select
       * </pre>
       *
       * <code>optional string resource = 2;</code>
       */
      public Builder setResourceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        resource_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Resource.Quantity divisor_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Resource.Quantity,
              io.kubernetes.client.proto.Resource.Quantity.Builder,
              io.kubernetes.client.proto.Resource.QuantityOrBuilder>
          divisorBuilder_;
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public boolean hasDivisor() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getDivisor() {
        if (divisorBuilder_ == null) {
          return divisor_ == null
              ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
              : divisor_;
        } else {
          return divisorBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public Builder setDivisor(io.kubernetes.client.proto.Resource.Quantity value) {
        if (divisorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          divisor_ = value;
          onChanged();
        } else {
          divisorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public Builder setDivisor(
          io.kubernetes.client.proto.Resource.Quantity.Builder builderForValue) {
        if (divisorBuilder_ == null) {
          divisor_ = builderForValue.build();
          onChanged();
        } else {
          divisorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public Builder mergeDivisor(io.kubernetes.client.proto.Resource.Quantity value) {
        if (divisorBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && divisor_ != null
              && divisor_ != io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()) {
            divisor_ =
                io.kubernetes.client.proto.Resource.Quantity.newBuilder(divisor_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            divisor_ = value;
          }
          onChanged();
        } else {
          divisorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public Builder clearDivisor() {
        if (divisorBuilder_ == null) {
          divisor_ = null;
          onChanged();
        } else {
          divisorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public io.kubernetes.client.proto.Resource.Quantity.Builder getDivisorBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getDivisorFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      public io.kubernetes.client.proto.Resource.QuantityOrBuilder getDivisorOrBuilder() {
        if (divisorBuilder_ != null) {
          return divisorBuilder_.getMessageOrBuilder();
        } else {
          return divisor_ == null
              ? io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance()
              : divisor_;
        }
      }
      /**
       *
       *
       * <pre>
       * Specifies the output format of the exposed resources, defaults to "1"
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.api.resource.Quantity divisor = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Resource.Quantity,
              io.kubernetes.client.proto.Resource.Quantity.Builder,
              io.kubernetes.client.proto.Resource.QuantityOrBuilder>
          getDivisorFieldBuilder() {
        if (divisorBuilder_ == null) {
          divisorBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Resource.Quantity,
                  io.kubernetes.client.proto.Resource.Quantity.Builder,
                  io.kubernetes.client.proto.Resource.QuantityOrBuilder>(
                  getDivisor(), getParentForChildren(), isClean());
          divisor_ = null;
        }
        return divisorBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceFieldSelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceFieldSelector)
    private static final io.kubernetes.client.proto.V1.ResourceFieldSelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceFieldSelector();
    }

    public static io.kubernetes.client.proto.V1.ResourceFieldSelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceFieldSelector> PARSER =
        new com.google.protobuf.AbstractParser<ResourceFieldSelector>() {
          @java.lang.Override
          public ResourceFieldSelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceFieldSelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceFieldSelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceFieldSelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceFieldSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceQuotaOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceQuota)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuotaSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuotaStatus getStatus();
    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ResourceQuota sets aggregate quota restrictions enforced per namespace
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceQuota}
   */
  public static final class ResourceQuota extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceQuota)
      ResourceQuotaOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceQuota.newBuilder() to construct.
    private ResourceQuota(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceQuota() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceQuota(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceQuotaSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceQuotaStatus.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceQuota_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceQuota.class,
              io.kubernetes.client.proto.V1.ResourceQuota.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ResourceQuotaSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuotaSpec getSpec() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance()
          : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the desired quota.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null
          ? io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance()
          : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ResourceQuotaStatus status_;
    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuotaStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Status defines the actual enforced quota and its current usage.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceQuota)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceQuota other =
          (io.kubernetes.client.proto.V1.ResourceQuota) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ResourceQuota prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceQuota sets aggregate quota restrictions enforced per namespace
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceQuota}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceQuota)
        io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceQuota_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceQuota.class,
                io.kubernetes.client.proto.V1.ResourceQuota.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceQuota.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuota getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuota.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuota build() {
        io.kubernetes.client.proto.V1.ResourceQuota result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuota buildPartial() {
        io.kubernetes.client.proto.V1.ResourceQuota result =
            new io.kubernetes.client.proto.V1.ResourceQuota(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceQuota) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceQuota) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceQuota other) {
        if (other == io.kubernetes.client.proto.V1.ResourceQuota.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceQuota parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ResourceQuota) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceQuotaSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuotaSpec,
              io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.ResourceQuotaSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public Builder setSpec(
          io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.ResourceQuotaSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.ResourceQuotaSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the desired quota.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuotaSpec,
              io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceQuotaSpec,
                  io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder,
                  io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.ResourceQuotaStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuotaStatus,
              io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.ResourceQuotaStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.ResourceQuotaStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_
                  != io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.ResourceQuotaStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Status defines the actual enforced quota and its current usage.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ResourceQuotaStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuotaStatus,
              io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceQuotaStatus,
                  io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder,
                  io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceQuota)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceQuota)
    private static final io.kubernetes.client.proto.V1.ResourceQuota DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceQuota();
    }

    public static io.kubernetes.client.proto.V1.ResourceQuota getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceQuota> PARSER =
        new com.google.protobuf.AbstractParser<ResourceQuota>() {
          @java.lang.Override
          public ResourceQuota parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceQuota(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceQuota> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceQuota> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceQuota getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceQuotaListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceQuotaList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ResourceQuota> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuota getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ResourceQuotaList is a list of ResourceQuota items.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaList}
   */
  public static final class ResourceQuotaList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceQuotaList)
      ResourceQuotaListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceQuotaList.newBuilder() to construct.
    private ResourceQuotaList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceQuotaList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceQuotaList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ResourceQuota>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ResourceQuota.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceQuotaList.class,
              io.kubernetes.client.proto.V1.ResourceQuotaList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ResourceQuota> items_;
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ResourceQuota> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuota getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is a list of ResourceQuota objects.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceQuotaList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceQuotaList other =
          (io.kubernetes.client.proto.V1.ResourceQuotaList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ResourceQuotaList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceQuotaList is a list of ResourceQuota items.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceQuotaList)
        io.kubernetes.client.proto.V1.ResourceQuotaListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceQuotaList.class,
                io.kubernetes.client.proto.V1.ResourceQuotaList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceQuotaList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaList build() {
        io.kubernetes.client.proto.V1.ResourceQuotaList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaList buildPartial() {
        io.kubernetes.client.proto.V1.ResourceQuotaList result =
            new io.kubernetes.client.proto.V1.ResourceQuotaList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceQuotaList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceQuotaList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceQuotaList other) {
        if (other == io.kubernetes.client.proto.V1.ResourceQuotaList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceQuotaList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ResourceQuotaList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ResourceQuota> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ResourceQuota>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuota,
              io.kubernetes.client.proto.V1.ResourceQuota.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ResourceQuota> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuota getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.ResourceQuota value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ResourceQuota.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ResourceQuota value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.ResourceQuota value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ResourceQuota.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ResourceQuota.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ResourceQuota> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuota.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuota.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ResourceQuota.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ResourceQuota.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ResourceQuota.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of ResourceQuota objects.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ResourceQuota items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ResourceQuota.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ResourceQuota,
              io.kubernetes.client.proto.V1.ResourceQuota.Builder,
              io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ResourceQuota,
                  io.kubernetes.client.proto.V1.ResourceQuota.Builder,
                  io.kubernetes.client.proto.V1.ResourceQuotaOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceQuotaList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceQuotaList)
    private static final io.kubernetes.client.proto.V1.ResourceQuotaList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceQuotaList();
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceQuotaList> PARSER =
        new com.google.protobuf.AbstractParser<ResourceQuotaList>() {
          @java.lang.Override
          public ResourceQuotaList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceQuotaList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceQuotaList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceQuotaList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceQuotaList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceQuotaSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceQuotaSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    int getHardCount();
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    boolean containsHard(java.lang.String key);
    /** Use {@link #getHardMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHard();
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHardMap();
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    java.util.List<java.lang.String> getScopesList();
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    int getScopesCount();
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    java.lang.String getScopes(int index);
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    com.google.protobuf.ByteString getScopesBytes(int index);

    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    boolean hasScopeSelector();
    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    io.kubernetes.client.proto.V1.ScopeSelector getScopeSelector();
    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder getScopeSelectorOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ResourceQuotaSpec defines the desired hard limits to enforce for Quota.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaSpec}
   */
  public static final class ResourceQuotaSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceQuotaSpec)
      ResourceQuotaSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceQuotaSpec.newBuilder() to construct.
    private ResourceQuotaSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceQuotaSpec() {
      scopes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceQuotaSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  hard_ =
                      com.google.protobuf.MapField.newMapField(HardDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    hard__ =
                        input.readMessage(
                            HardDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                hard_.getMutableMap().put(hard__.getKey(), hard__.getValue());
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  scopes_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                scopes_.add(bs);
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ScopeSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = scopeSelector_.toBuilder();
                }
                scopeSelector_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ScopeSelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(scopeSelector_);
                  scopeSelector_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          scopes_ = scopes_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetHard();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceQuotaSpec.class,
              io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder.class);
    }

    private int bitField0_;
    public static final int HARD_FIELD_NUMBER = 1;

    private static final class HardDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        hard_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetHard() {
      if (hard_ == null) {
        return com.google.protobuf.MapField.emptyMapField(HardDefaultEntryHolder.defaultEntry);
      }
      return hard_;
    }

    public int getHardCount() {
      return internalGetHard().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public boolean containsHard(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetHard().getMap().containsKey(key);
    }
    /** Use {@link #getHardMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHard() {
      return getHardMap();
    }
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getHardMap() {
      return internalGetHard().getMap();
    }
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetHard().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * hard is the set of desired hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetHard().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int SCOPES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList scopes_;
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getScopesList() {
      return scopes_;
    }
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    public int getScopesCount() {
      return scopes_.size();
    }
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    public java.lang.String getScopes(int index) {
      return scopes_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A collection of filters that must match each object tracked by a quota.
     * If not specified, the quota matches all objects.
     * +optional
     * </pre>
     *
     * <code>repeated string scopes = 2;</code>
     */
    public com.google.protobuf.ByteString getScopesBytes(int index) {
      return scopes_.getByteString(index);
    }

    public static final int SCOPESELECTOR_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ScopeSelector scopeSelector_;
    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    public boolean hasScopeSelector() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ScopeSelector getScopeSelector() {
      return scopeSelector_ == null
          ? io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()
          : scopeSelector_;
    }
    /**
     *
     *
     * <pre>
     * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
     * but expressed using ScopeSelectorOperator in combination with possible values.
     * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder getScopeSelectorOrBuilder() {
      return scopeSelector_ == null
          ? io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()
          : scopeSelector_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetHard(), HardDefaultEntryHolder.defaultEntry, 1);
      for (int i = 0; i < scopes_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, scopes_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(3, getScopeSelector());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetHard().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            hard__ =
                HardDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, hard__);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < scopes_.size(); i++) {
          dataSize += computeStringSizeNoTag(scopes_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getScopesList().size();
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getScopeSelector());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceQuotaSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceQuotaSpec other =
          (io.kubernetes.client.proto.V1.ResourceQuotaSpec) obj;

      boolean result = true;
      result = result && internalGetHard().equals(other.internalGetHard());
      result = result && getScopesList().equals(other.getScopesList());
      result = result && (hasScopeSelector() == other.hasScopeSelector());
      if (hasScopeSelector()) {
        result = result && getScopeSelector().equals(other.getScopeSelector());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetHard().getMap().isEmpty()) {
        hash = (37 * hash) + HARD_FIELD_NUMBER;
        hash = (53 * hash) + internalGetHard().hashCode();
      }
      if (getScopesCount() > 0) {
        hash = (37 * hash) + SCOPES_FIELD_NUMBER;
        hash = (53 * hash) + getScopesList().hashCode();
      }
      if (hasScopeSelector()) {
        hash = (37 * hash) + SCOPESELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + getScopeSelector().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ResourceQuotaSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceQuotaSpec defines the desired hard limits to enforce for Quota.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceQuotaSpec)
        io.kubernetes.client.proto.V1.ResourceQuotaSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetHard();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableHard();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceQuotaSpec.class,
                io.kubernetes.client.proto.V1.ResourceQuotaSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceQuotaSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getScopeSelectorFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableHard().clear();
        scopes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (scopeSelectorBuilder_ == null) {
          scopeSelector_ = null;
        } else {
          scopeSelectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaSpec build() {
        io.kubernetes.client.proto.V1.ResourceQuotaSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaSpec buildPartial() {
        io.kubernetes.client.proto.V1.ResourceQuotaSpec result =
            new io.kubernetes.client.proto.V1.ResourceQuotaSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        result.hard_ = internalGetHard();
        result.hard_.makeImmutable();
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          scopes_ = scopes_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.scopes_ = scopes_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        if (scopeSelectorBuilder_ == null) {
          result.scopeSelector_ = scopeSelector_;
        } else {
          result.scopeSelector_ = scopeSelectorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceQuotaSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceQuotaSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceQuotaSpec other) {
        if (other == io.kubernetes.client.proto.V1.ResourceQuotaSpec.getDefaultInstance())
          return this;
        internalGetMutableHard().mergeFrom(other.internalGetHard());
        if (!other.scopes_.isEmpty()) {
          if (scopes_.isEmpty()) {
            scopes_ = other.scopes_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureScopesIsMutable();
            scopes_.addAll(other.scopes_);
          }
          onChanged();
        }
        if (other.hasScopeSelector()) {
          mergeScopeSelector(other.getScopeSelector());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceQuotaSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ResourceQuotaSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          hard_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetHard() {
        if (hard_ == null) {
          return com.google.protobuf.MapField.emptyMapField(HardDefaultEntryHolder.defaultEntry);
        }
        return hard_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableHard() {
        onChanged();
        ;
        if (hard_ == null) {
          hard_ = com.google.protobuf.MapField.newMapField(HardDefaultEntryHolder.defaultEntry);
        }
        if (!hard_.isMutable()) {
          hard_ = hard_.copy();
        }
        return hard_;
      }

      public int getHardCount() {
        return internalGetHard().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public boolean containsHard(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetHard().getMap().containsKey(key);
      }
      /** Use {@link #getHardMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getHard() {
        return getHardMap();
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getHardMap() {
        return internalGetHard().getMap();
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetHard().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetHard().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearHard() {
        internalGetMutableHard().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder removeHard(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableHard().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableHard() {
        return internalGetMutableHard().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder putHard(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableHard().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * hard is the set of desired hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder putAllHard(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableHard().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.LazyStringList scopes_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureScopesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          scopes_ = new com.google.protobuf.LazyStringArrayList(scopes_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getScopesList() {
        return scopes_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public int getScopesCount() {
        return scopes_.size();
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public java.lang.String getScopes(int index) {
        return scopes_.get(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public com.google.protobuf.ByteString getScopesBytes(int index) {
        return scopes_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public Builder setScopes(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureScopesIsMutable();
        scopes_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public Builder addScopes(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureScopesIsMutable();
        scopes_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public Builder addAllScopes(java.lang.Iterable<java.lang.String> values) {
        ensureScopesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, scopes_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public Builder clearScopes() {
        scopes_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * A collection of filters that must match each object tracked by a quota.
       * If not specified, the quota matches all objects.
       * +optional
       * </pre>
       *
       * <code>repeated string scopes = 2;</code>
       */
      public Builder addScopesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureScopesIsMutable();
        scopes_.add(value);
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ScopeSelector scopeSelector_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScopeSelector,
              io.kubernetes.client.proto.V1.ScopeSelector.Builder,
              io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder>
          scopeSelectorBuilder_;
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public boolean hasScopeSelector() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ScopeSelector getScopeSelector() {
        if (scopeSelectorBuilder_ == null) {
          return scopeSelector_ == null
              ? io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()
              : scopeSelector_;
        } else {
          return scopeSelectorBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public Builder setScopeSelector(io.kubernetes.client.proto.V1.ScopeSelector value) {
        if (scopeSelectorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scopeSelector_ = value;
          onChanged();
        } else {
          scopeSelectorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public Builder setScopeSelector(
          io.kubernetes.client.proto.V1.ScopeSelector.Builder builderForValue) {
        if (scopeSelectorBuilder_ == null) {
          scopeSelector_ = builderForValue.build();
          onChanged();
        } else {
          scopeSelectorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public Builder mergeScopeSelector(io.kubernetes.client.proto.V1.ScopeSelector value) {
        if (scopeSelectorBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && scopeSelector_ != null
              && scopeSelector_
                  != io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()) {
            scopeSelector_ =
                io.kubernetes.client.proto.V1.ScopeSelector.newBuilder(scopeSelector_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            scopeSelector_ = value;
          }
          onChanged();
        } else {
          scopeSelectorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public Builder clearScopeSelector() {
        if (scopeSelectorBuilder_ == null) {
          scopeSelector_ = null;
          onChanged();
        } else {
          scopeSelectorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ScopeSelector.Builder getScopeSelectorBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getScopeSelectorFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder getScopeSelectorOrBuilder() {
        if (scopeSelectorBuilder_ != null) {
          return scopeSelectorBuilder_.getMessageOrBuilder();
        } else {
          return scopeSelector_ == null
              ? io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()
              : scopeSelector_;
        }
      }
      /**
       *
       *
       * <pre>
       * scopeSelector is also a collection of filters like scopes that must match each object tracked by a quota
       * but expressed using ScopeSelectorOperator in combination with possible values.
       * For a resource to match, both scopes AND scopeSelector (if specified in spec), must be matched.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScopeSelector scopeSelector = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScopeSelector,
              io.kubernetes.client.proto.V1.ScopeSelector.Builder,
              io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder>
          getScopeSelectorFieldBuilder() {
        if (scopeSelectorBuilder_ == null) {
          scopeSelectorBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ScopeSelector,
                  io.kubernetes.client.proto.V1.ScopeSelector.Builder,
                  io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder>(
                  getScopeSelector(), getParentForChildren(), isClean());
          scopeSelector_ = null;
        }
        return scopeSelectorBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceQuotaSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceQuotaSpec)
    private static final io.kubernetes.client.proto.V1.ResourceQuotaSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceQuotaSpec();
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceQuotaSpec> PARSER =
        new com.google.protobuf.AbstractParser<ResourceQuotaSpec>() {
          @java.lang.Override
          public ResourceQuotaSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceQuotaSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceQuotaSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceQuotaSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceQuotaSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceQuotaStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceQuotaStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    int getHardCount();
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    boolean containsHard(java.lang.String key);
    /** Use {@link #getHardMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHard();
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHardMap();
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    int getUsedCount();
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    boolean containsUsed(java.lang.String key);
    /** Use {@link #getUsedMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getUsed();
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getUsedMap();
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getUsedOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    io.kubernetes.client.proto.Resource.Quantity getUsedOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * ResourceQuotaStatus defines the enforced hard limits and observed use.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaStatus}
   */
  public static final class ResourceQuotaStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceQuotaStatus)
      ResourceQuotaStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceQuotaStatus.newBuilder() to construct.
    private ResourceQuotaStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceQuotaStatus() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceQuotaStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  hard_ =
                      com.google.protobuf.MapField.newMapField(HardDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    hard__ =
                        input.readMessage(
                            HardDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                hard_.getMutableMap().put(hard__.getKey(), hard__.getValue());
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  used_ =
                      com.google.protobuf.MapField.newMapField(UsedDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    used__ =
                        input.readMessage(
                            UsedDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                used_.getMutableMap().put(used__.getKey(), used__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetHard();
        case 2:
          return internalGetUsed();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceQuotaStatus.class,
              io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder.class);
    }

    public static final int HARD_FIELD_NUMBER = 1;

    private static final class HardDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        hard_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetHard() {
      if (hard_ == null) {
        return com.google.protobuf.MapField.emptyMapField(HardDefaultEntryHolder.defaultEntry);
      }
      return hard_;
    }

    public int getHardCount() {
      return internalGetHard().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public boolean containsHard(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetHard().getMap().containsKey(key);
    }
    /** Use {@link #getHardMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getHard() {
      return getHardMap();
    }
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getHardMap() {
      return internalGetHard().getMap();
    }
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetHard().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Hard is the set of enforced hard limits for each named resource.
     * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetHard().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int USED_FIELD_NUMBER = 2;

    private static final class UsedDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        used_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetUsed() {
      if (used_ == null) {
        return com.google.protobuf.MapField.emptyMapField(UsedDefaultEntryHolder.defaultEntry);
      }
      return used_;
    }

    public int getUsedCount() {
      return internalGetUsed().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    public boolean containsUsed(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetUsed().getMap().containsKey(key);
    }
    /** Use {@link #getUsedMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getUsed() {
      return getUsedMap();
    }
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getUsedMap() {
      return internalGetUsed().getMap();
    }
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getUsedOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetUsed().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Used is the current observed total usage of the resource in the namespace.
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;</code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getUsedOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetUsed().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetHard(), HardDefaultEntryHolder.defaultEntry, 1);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetUsed(), UsedDefaultEntryHolder.defaultEntry, 2);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetHard().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            hard__ =
                HardDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, hard__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetUsed().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            used__ =
                UsedDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, used__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceQuotaStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceQuotaStatus other =
          (io.kubernetes.client.proto.V1.ResourceQuotaStatus) obj;

      boolean result = true;
      result = result && internalGetHard().equals(other.internalGetHard());
      result = result && internalGetUsed().equals(other.internalGetUsed());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetHard().getMap().isEmpty()) {
        hash = (37 * hash) + HARD_FIELD_NUMBER;
        hash = (53 * hash) + internalGetHard().hashCode();
      }
      if (!internalGetUsed().getMap().isEmpty()) {
        hash = (37 * hash) + USED_FIELD_NUMBER;
        hash = (53 * hash) + internalGetUsed().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ResourceQuotaStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceQuotaStatus defines the enforced hard limits and observed use.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceQuotaStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceQuotaStatus)
        io.kubernetes.client.proto.V1.ResourceQuotaStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetHard();
          case 2:
            return internalGetUsed();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableHard();
          case 2:
            return internalGetMutableUsed();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceQuotaStatus.class,
                io.kubernetes.client.proto.V1.ResourceQuotaStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceQuotaStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableHard().clear();
        internalGetMutableUsed().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaStatus build() {
        io.kubernetes.client.proto.V1.ResourceQuotaStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceQuotaStatus buildPartial() {
        io.kubernetes.client.proto.V1.ResourceQuotaStatus result =
            new io.kubernetes.client.proto.V1.ResourceQuotaStatus(this);
        int from_bitField0_ = bitField0_;
        result.hard_ = internalGetHard();
        result.hard_.makeImmutable();
        result.used_ = internalGetUsed();
        result.used_.makeImmutable();
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceQuotaStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceQuotaStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceQuotaStatus other) {
        if (other == io.kubernetes.client.proto.V1.ResourceQuotaStatus.getDefaultInstance())
          return this;
        internalGetMutableHard().mergeFrom(other.internalGetHard());
        internalGetMutableUsed().mergeFrom(other.internalGetUsed());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceQuotaStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ResourceQuotaStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          hard_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetHard() {
        if (hard_ == null) {
          return com.google.protobuf.MapField.emptyMapField(HardDefaultEntryHolder.defaultEntry);
        }
        return hard_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableHard() {
        onChanged();
        ;
        if (hard_ == null) {
          hard_ = com.google.protobuf.MapField.newMapField(HardDefaultEntryHolder.defaultEntry);
        }
        if (!hard_.isMutable()) {
          hard_ = hard_.copy();
        }
        return hard_;
      }

      public int getHardCount() {
        return internalGetHard().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public boolean containsHard(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetHard().getMap().containsKey(key);
      }
      /** Use {@link #getHardMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getHard() {
        return getHardMap();
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getHardMap() {
        return internalGetHard().getMap();
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getHardOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetHard().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getHardOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetHard().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearHard() {
        internalGetMutableHard().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder removeHard(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableHard().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableHard() {
        return internalGetMutableHard().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder putHard(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableHard().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Hard is the set of enforced hard limits for each named resource.
       * More info: https://kubernetes.io/docs/concepts/policy/resource-quotas/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; hard = 1;
       * </code>
       */
      public Builder putAllHard(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableHard().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          used_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetUsed() {
        if (used_ == null) {
          return com.google.protobuf.MapField.emptyMapField(UsedDefaultEntryHolder.defaultEntry);
        }
        return used_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableUsed() {
        onChanged();
        ;
        if (used_ == null) {
          used_ = com.google.protobuf.MapField.newMapField(UsedDefaultEntryHolder.defaultEntry);
        }
        if (!used_.isMutable()) {
          used_ = used_.copy();
        }
        return used_;
      }

      public int getUsedCount() {
        return internalGetUsed().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public boolean containsUsed(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetUsed().getMap().containsKey(key);
      }
      /** Use {@link #getUsedMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getUsed() {
        return getUsedMap();
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getUsedMap() {
        return internalGetUsed().getMap();
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getUsedOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetUsed().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getUsedOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetUsed().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearUsed() {
        internalGetMutableUsed().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public Builder removeUsed(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableUsed().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableUsed() {
        return internalGetMutableUsed().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public Builder putUsed(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableUsed().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Used is the current observed total usage of the resource in the namespace.
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; used = 2;
       * </code>
       */
      public Builder putAllUsed(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableUsed().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceQuotaStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceQuotaStatus)
    private static final io.kubernetes.client.proto.V1.ResourceQuotaStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceQuotaStatus();
    }

    public static io.kubernetes.client.proto.V1.ResourceQuotaStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceQuotaStatus> PARSER =
        new com.google.protobuf.AbstractParser<ResourceQuotaStatus>() {
          @java.lang.Override
          public ResourceQuotaStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceQuotaStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceQuotaStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceQuotaStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceQuotaStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ResourceRequirementsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ResourceRequirements)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    int getLimitsCount();
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    boolean containsLimits(java.lang.String key);
    /** Use {@link #getLimitsMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getLimits();
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getLimitsMap();
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getLimitsOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getLimitsOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    int getRequestsCount();
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    boolean containsRequests(java.lang.String key);
    /** Use {@link #getRequestsMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getRequests();
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> getRequestsMap();
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getRequestsOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue);
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    io.kubernetes.client.proto.Resource.Quantity getRequestsOrThrow(java.lang.String key);
  }
  /**
   *
   *
   * <pre>
   * ResourceRequirements describes the compute resource requirements.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ResourceRequirements}
   */
  public static final class ResourceRequirements extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ResourceRequirements)
      ResourceRequirementsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ResourceRequirements.newBuilder() to construct.
    private ResourceRequirements(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ResourceRequirements() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ResourceRequirements(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  limits_ =
                      com.google.protobuf.MapField.newMapField(
                          LimitsDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000001;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    limits__ =
                        input.readMessage(
                            LimitsDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                limits_.getMutableMap().put(limits__.getKey(), limits__.getValue());
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  requests_ =
                      com.google.protobuf.MapField.newMapField(
                          RequestsDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<
                        java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                    requests__ =
                        input.readMessage(
                            RequestsDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                requests_.getMutableMap().put(requests__.getKey(), requests__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 1:
          return internalGetLimits();
        case 2:
          return internalGetRequests();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ResourceRequirements_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ResourceRequirements.class,
              io.kubernetes.client.proto.V1.ResourceRequirements.Builder.class);
    }

    public static final int LIMITS_FIELD_NUMBER = 1;

    private static final class LimitsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        limits_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetLimits() {
      if (limits_ == null) {
        return com.google.protobuf.MapField.emptyMapField(LimitsDefaultEntryHolder.defaultEntry);
      }
      return limits_;
    }

    public int getLimitsCount() {
      return internalGetLimits().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    public boolean containsLimits(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetLimits().getMap().containsKey(key);
    }
    /** Use {@link #getLimitsMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getLimits() {
      return getLimitsMap();
    }
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getLimitsMap() {
      return internalGetLimits().getMap();
    }
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getLimitsOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetLimits().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Limits describes the maximum amount of compute resources allowed.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getLimitsOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetLimits().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int REQUESTS_FIELD_NUMBER = 2;

    private static final class RequestsDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
                      newDefaultInstance(
                          io.kubernetes
                              .client
                              .proto
                              .V1
                              .internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_descriptor,
                          com.google.protobuf.WireFormat.FieldType.STRING,
                          "",
                          com.google.protobuf.WireFormat.FieldType.MESSAGE,
                          io.kubernetes.client.proto.Resource.Quantity.getDefaultInstance());
    }

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        requests_;

    private com.google.protobuf.MapField<
            java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        internalGetRequests() {
      if (requests_ == null) {
        return com.google.protobuf.MapField.emptyMapField(RequestsDefaultEntryHolder.defaultEntry);
      }
      return requests_;
    }

    public int getRequestsCount() {
      return internalGetRequests().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    public boolean containsRequests(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetRequests().getMap().containsKey(key);
    }
    /** Use {@link #getRequestsMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getRequests() {
      return getRequestsMap();
    }
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
        getRequestsMap() {
      return internalGetRequests().getMap();
    }
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getRequestsOrDefault(
        java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetRequests().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Requests describes the minimum amount of compute resources required.
     * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
     * otherwise to an implementation-defined value.
     * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
     * </code>
     */
    public io.kubernetes.client.proto.Resource.Quantity getRequestsOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
          internalGetRequests().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetLimits(), LimitsDefaultEntryHolder.defaultEntry, 1);
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetRequests(), RequestsDefaultEntryHolder.defaultEntry, 2);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetLimits().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            limits__ =
                LimitsDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, limits__);
      }
      for (java.util.Map.Entry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          entry : internalGetRequests().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
            requests__ =
                RequestsDefaultEntryHolder.defaultEntry
                    .newBuilderForType()
                    .setKey(entry.getKey())
                    .setValue(entry.getValue())
                    .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, requests__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ResourceRequirements)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ResourceRequirements other =
          (io.kubernetes.client.proto.V1.ResourceRequirements) obj;

      boolean result = true;
      result = result && internalGetLimits().equals(other.internalGetLimits());
      result = result && internalGetRequests().equals(other.internalGetRequests());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (!internalGetLimits().getMap().isEmpty()) {
        hash = (37 * hash) + LIMITS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetLimits().hashCode();
      }
      if (!internalGetRequests().getMap().isEmpty()) {
        hash = (37 * hash) + REQUESTS_FIELD_NUMBER;
        hash = (53 * hash) + internalGetRequests().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ResourceRequirements prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ResourceRequirements describes the compute resource requirements.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ResourceRequirements}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ResourceRequirements)
        io.kubernetes.client.proto.V1.ResourceRequirementsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 1:
            return internalGetLimits();
          case 2:
            return internalGetRequests();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 1:
            return internalGetMutableLimits();
          case 2:
            return internalGetMutableRequests();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ResourceRequirements_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ResourceRequirements.class,
                io.kubernetes.client.proto.V1.ResourceRequirements.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ResourceRequirements.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        internalGetMutableLimits().clear();
        internalGetMutableRequests().clear();
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceRequirements getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceRequirements build() {
        io.kubernetes.client.proto.V1.ResourceRequirements result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ResourceRequirements buildPartial() {
        io.kubernetes.client.proto.V1.ResourceRequirements result =
            new io.kubernetes.client.proto.V1.ResourceRequirements(this);
        int from_bitField0_ = bitField0_;
        result.limits_ = internalGetLimits();
        result.limits_.makeImmutable();
        result.requests_ = internalGetRequests();
        result.requests_.makeImmutable();
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ResourceRequirements) {
          return mergeFrom((io.kubernetes.client.proto.V1.ResourceRequirements) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ResourceRequirements other) {
        if (other == io.kubernetes.client.proto.V1.ResourceRequirements.getDefaultInstance())
          return this;
        internalGetMutableLimits().mergeFrom(other.internalGetLimits());
        internalGetMutableRequests().mergeFrom(other.internalGetRequests());
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ResourceRequirements parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ResourceRequirements) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          limits_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetLimits() {
        if (limits_ == null) {
          return com.google.protobuf.MapField.emptyMapField(LimitsDefaultEntryHolder.defaultEntry);
        }
        return limits_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableLimits() {
        onChanged();
        ;
        if (limits_ == null) {
          limits_ = com.google.protobuf.MapField.newMapField(LimitsDefaultEntryHolder.defaultEntry);
        }
        if (!limits_.isMutable()) {
          limits_ = limits_.copy();
        }
        return limits_;
      }

      public int getLimitsCount() {
        return internalGetLimits().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public boolean containsLimits(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetLimits().getMap().containsKey(key);
      }
      /** Use {@link #getLimitsMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getLimits() {
        return getLimitsMap();
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getLimitsMap() {
        return internalGetLimits().getMap();
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getLimitsOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetLimits().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getLimitsOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetLimits().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearLimits() {
        internalGetMutableLimits().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public Builder removeLimits(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableLimits().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableLimits() {
        return internalGetMutableLimits().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public Builder putLimits(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableLimits().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Limits describes the maximum amount of compute resources allowed.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; limits = 1;
       * </code>
       */
      public Builder putAllLimits(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableLimits().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          requests_;

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetRequests() {
        if (requests_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              RequestsDefaultEntryHolder.defaultEntry);
        }
        return requests_;
      }

      private com.google.protobuf.MapField<
              java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          internalGetMutableRequests() {
        onChanged();
        ;
        if (requests_ == null) {
          requests_ =
              com.google.protobuf.MapField.newMapField(RequestsDefaultEntryHolder.defaultEntry);
        }
        if (!requests_.isMutable()) {
          requests_ = requests_.copy();
        }
        return requests_;
      }

      public int getRequestsCount() {
        return internalGetRequests().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public boolean containsRequests(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetRequests().getMap().containsKey(key);
      }
      /** Use {@link #getRequestsMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getRequests() {
        return getRequestsMap();
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getRequestsMap() {
        return internalGetRequests().getMap();
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getRequestsOrDefault(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetRequests().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public io.kubernetes.client.proto.Resource.Quantity getRequestsOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> map =
            internalGetRequests().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearRequests() {
        internalGetMutableRequests().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public Builder removeRequests(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableRequests().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity>
          getMutableRequests() {
        return internalGetMutableRequests().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public Builder putRequests(
          java.lang.String key, io.kubernetes.client.proto.Resource.Quantity value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableRequests().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Requests describes the minimum amount of compute resources required.
       * If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
       * otherwise to an implementation-defined value.
       * More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, .k8s.io.apimachinery.pkg.api.resource.Quantity&gt; requests = 2;
       * </code>
       */
      public Builder putAllRequests(
          java.util.Map<java.lang.String, io.kubernetes.client.proto.Resource.Quantity> values) {
        internalGetMutableRequests().getMutableMap().putAll(values);
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ResourceRequirements)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ResourceRequirements)
    private static final io.kubernetes.client.proto.V1.ResourceRequirements DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ResourceRequirements();
    }

    public static io.kubernetes.client.proto.V1.ResourceRequirements getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ResourceRequirements> PARSER =
        new com.google.protobuf.AbstractParser<ResourceRequirements>() {
          @java.lang.Override
          public ResourceRequirements parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ResourceRequirements(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ResourceRequirements> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ResourceRequirements> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ResourceRequirements getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SELinuxOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SELinuxOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    boolean hasUser();
    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    java.lang.String getUser();
    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    com.google.protobuf.ByteString getUserBytes();

    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    boolean hasRole();
    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    java.lang.String getRole();
    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    com.google.protobuf.ByteString getRoleBytes();

    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    boolean hasLevel();
    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    java.lang.String getLevel();
    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    com.google.protobuf.ByteString getLevelBytes();
  }
  /**
   *
   *
   * <pre>
   * SELinuxOptions are the labels to be applied to the container
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SELinuxOptions}
   */
  public static final class SELinuxOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SELinuxOptions)
      SELinuxOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SELinuxOptions.newBuilder() to construct.
    private SELinuxOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SELinuxOptions() {
      user_ = "";
      role_ = "";
      type_ = "";
      level_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SELinuxOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                user_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                role_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                type_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                level_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SELinuxOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SELinuxOptions.class,
              io.kubernetes.client.proto.V1.SELinuxOptions.Builder.class);
    }

    private int bitField0_;
    public static final int USER_FIELD_NUMBER = 1;
    private volatile java.lang.Object user_;
    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    public boolean hasUser() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    public java.lang.String getUser() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          user_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * User is a SELinux user label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string user = 1;</code>
     */
    public com.google.protobuf.ByteString getUserBytes() {
      java.lang.Object ref = user_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        user_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ROLE_FIELD_NUMBER = 2;
    private volatile java.lang.Object role_;
    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    public boolean hasRole() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    public java.lang.String getRole() {
      java.lang.Object ref = role_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          role_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Role is a SELinux role label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string role = 2;</code>
     */
    public com.google.protobuf.ByteString getRoleBytes() {
      java.lang.Object ref = role_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        role_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Type is a SELinux type label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LEVEL_FIELD_NUMBER = 4;
    private volatile java.lang.Object level_;
    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    public boolean hasLevel() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    public java.lang.String getLevel() {
      java.lang.Object ref = level_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          level_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Level is SELinux level label that applies to the container.
     * +optional
     * </pre>
     *
     * <code>optional string level = 4;</code>
     */
    public com.google.protobuf.ByteString getLevelBytes() {
      java.lang.Object ref = level_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        level_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, user_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, role_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, level_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, user_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, role_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, level_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SELinuxOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SELinuxOptions other =
          (io.kubernetes.client.proto.V1.SELinuxOptions) obj;

      boolean result = true;
      result = result && (hasUser() == other.hasUser());
      if (hasUser()) {
        result = result && getUser().equals(other.getUser());
      }
      result = result && (hasRole() == other.hasRole());
      if (hasRole()) {
        result = result && getRole().equals(other.getRole());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && (hasLevel() == other.hasLevel());
      if (hasLevel()) {
        result = result && getLevel().equals(other.getLevel());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasUser()) {
        hash = (37 * hash) + USER_FIELD_NUMBER;
        hash = (53 * hash) + getUser().hashCode();
      }
      if (hasRole()) {
        hash = (37 * hash) + ROLE_FIELD_NUMBER;
        hash = (53 * hash) + getRole().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (hasLevel()) {
        hash = (37 * hash) + LEVEL_FIELD_NUMBER;
        hash = (53 * hash) + getLevel().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SELinuxOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SELinuxOptions are the labels to be applied to the container
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SELinuxOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SELinuxOptions)
        io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SELinuxOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SELinuxOptions.class,
                io.kubernetes.client.proto.V1.SELinuxOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SELinuxOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        user_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        role_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        level_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SELinuxOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SELinuxOptions build() {
        io.kubernetes.client.proto.V1.SELinuxOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SELinuxOptions buildPartial() {
        io.kubernetes.client.proto.V1.SELinuxOptions result =
            new io.kubernetes.client.proto.V1.SELinuxOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.user_ = user_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.role_ = role_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.type_ = type_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.level_ = level_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SELinuxOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.SELinuxOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SELinuxOptions other) {
        if (other == io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()) return this;
        if (other.hasUser()) {
          bitField0_ |= 0x00000001;
          user_ = other.user_;
          onChanged();
        }
        if (other.hasRole()) {
          bitField0_ |= 0x00000002;
          role_ = other.role_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000004;
          type_ = other.type_;
          onChanged();
        }
        if (other.hasLevel()) {
          bitField0_ |= 0x00000008;
          level_ = other.level_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SELinuxOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SELinuxOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object user_ = "";
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public boolean hasUser() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public java.lang.String getUser() {
        java.lang.Object ref = user_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            user_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public com.google.protobuf.ByteString getUserBytes() {
        java.lang.Object ref = user_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          user_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public Builder setUser(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        user_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public Builder clearUser() {
        bitField0_ = (bitField0_ & ~0x00000001);
        user_ = getDefaultInstance().getUser();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * User is a SELinux user label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string user = 1;</code>
       */
      public Builder setUserBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        user_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object role_ = "";
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public boolean hasRole() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public java.lang.String getRole() {
        java.lang.Object ref = role_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            role_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public com.google.protobuf.ByteString getRoleBytes() {
        java.lang.Object ref = role_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          role_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public Builder setRole(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        role_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public Builder clearRole() {
        bitField0_ = (bitField0_ & ~0x00000002);
        role_ = getDefaultInstance().getRole();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Role is a SELinux role label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string role = 2;</code>
       */
      public Builder setRoleBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        role_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Type is a SELinux type label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        type_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object level_ = "";
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public boolean hasLevel() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public java.lang.String getLevel() {
        java.lang.Object ref = level_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            level_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public com.google.protobuf.ByteString getLevelBytes() {
        java.lang.Object ref = level_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          level_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public Builder setLevel(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        level_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public Builder clearLevel() {
        bitField0_ = (bitField0_ & ~0x00000008);
        level_ = getDefaultInstance().getLevel();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Level is SELinux level label that applies to the container.
       * +optional
       * </pre>
       *
       * <code>optional string level = 4;</code>
       */
      public Builder setLevelBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        level_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SELinuxOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SELinuxOptions)
    private static final io.kubernetes.client.proto.V1.SELinuxOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SELinuxOptions();
    }

    public static io.kubernetes.client.proto.V1.SELinuxOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SELinuxOptions> PARSER =
        new com.google.protobuf.AbstractParser<SELinuxOptions>() {
          @java.lang.Override
          public SELinuxOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SELinuxOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SELinuxOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SELinuxOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SELinuxOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ScaleIOPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ScaleIOPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    boolean hasGateway();
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    java.lang.String getGateway();
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    com.google.protobuf.ByteString getGatewayBytes();

    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    boolean hasSystem();
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    java.lang.String getSystem();
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    com.google.protobuf.ByteString getSystemBytes();

    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    boolean hasSslEnabled();
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    boolean getSslEnabled();

    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    boolean hasProtectionDomain();
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    java.lang.String getProtectionDomain();
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    com.google.protobuf.ByteString getProtectionDomainBytes();

    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    boolean hasStoragePool();
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    java.lang.String getStoragePool();
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    com.google.protobuf.ByteString getStoragePoolBytes();

    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    boolean hasStorageMode();
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    java.lang.String getStorageMode();
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    com.google.protobuf.ByteString getStorageModeBytes();

    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    boolean hasVolumeName();
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    java.lang.String getVolumeName();
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    com.google.protobuf.ByteString getVolumeNameBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ScaleIOPersistentVolumeSource}
   */
  public static final class ScaleIOPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ScaleIOPersistentVolumeSource)
      ScaleIOPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ScaleIOPersistentVolumeSource.newBuilder() to construct.
    private ScaleIOPersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ScaleIOPersistentVolumeSource() {
      gateway_ = "";
      system_ = "";
      sslEnabled_ = false;
      protectionDomain_ = "";
      storagePool_ = "";
      storageMode_ = "";
      volumeName_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ScaleIOPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                gateway_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                system_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.SecretReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                sslEnabled_ = input.readBool();
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                protectionDomain_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                storagePool_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                storageMode_ = bs;
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                volumeName_ = bs;
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                fsType_ = bs;
                break;
              }
            case 80:
              {
                bitField0_ |= 0x00000200;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int GATEWAY_FIELD_NUMBER = 1;
    private volatile java.lang.Object gateway_;
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public boolean hasGateway() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public java.lang.String getGateway() {
      java.lang.Object ref = gateway_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          gateway_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public com.google.protobuf.ByteString getGatewayBytes() {
      java.lang.Object ref = gateway_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        gateway_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYSTEM_FIELD_NUMBER = 2;
    private volatile java.lang.Object system_;
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public com.google.protobuf.ByteString getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.SecretReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int SSLENABLED_FIELD_NUMBER = 4;
    private boolean sslEnabled_;
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    public boolean hasSslEnabled() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    public boolean getSslEnabled() {
      return sslEnabled_;
    }

    public static final int PROTECTIONDOMAIN_FIELD_NUMBER = 5;
    private volatile java.lang.Object protectionDomain_;
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public boolean hasProtectionDomain() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public java.lang.String getProtectionDomain() {
      java.lang.Object ref = protectionDomain_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protectionDomain_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public com.google.protobuf.ByteString getProtectionDomainBytes() {
      java.lang.Object ref = protectionDomain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        protectionDomain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEPOOL_FIELD_NUMBER = 6;
    private volatile java.lang.Object storagePool_;
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public boolean hasStoragePool() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public java.lang.String getStoragePool() {
      java.lang.Object ref = storagePool_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storagePool_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public com.google.protobuf.ByteString getStoragePoolBytes() {
      java.lang.Object ref = storagePool_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storagePool_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEMODE_FIELD_NUMBER = 7;
    private volatile java.lang.Object storageMode_;
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public boolean hasStorageMode() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public java.lang.String getStorageMode() {
      java.lang.Object ref = storageMode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storageMode_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public com.google.protobuf.ByteString getStorageModeBytes() {
      java.lang.Object ref = storageMode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storageMode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMENAME_FIELD_NUMBER = 8;
    private volatile java.lang.Object volumeName_;
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public boolean hasVolumeName() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public java.lang.String getVolumeName() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public com.google.protobuf.ByteString getVolumeNameBytes() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 9;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs"
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 10;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gateway_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, system_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, sslEnabled_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, protectionDomain_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, storagePool_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, storageMode_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, volumeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, fsType_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gateway_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, system_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, sslEnabled_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, protectionDomain_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, storagePool_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, storageMode_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, volumeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, fsType_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasGateway() == other.hasGateway());
      if (hasGateway()) {
        result = result && getGateway().equals(other.getGateway());
      }
      result = result && (hasSystem() == other.hasSystem());
      if (hasSystem()) {
        result = result && getSystem().equals(other.getSystem());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasSslEnabled() == other.hasSslEnabled());
      if (hasSslEnabled()) {
        result = result && (getSslEnabled() == other.getSslEnabled());
      }
      result = result && (hasProtectionDomain() == other.hasProtectionDomain());
      if (hasProtectionDomain()) {
        result = result && getProtectionDomain().equals(other.getProtectionDomain());
      }
      result = result && (hasStoragePool() == other.hasStoragePool());
      if (hasStoragePool()) {
        result = result && getStoragePool().equals(other.getStoragePool());
      }
      result = result && (hasStorageMode() == other.hasStorageMode());
      if (hasStorageMode()) {
        result = result && getStorageMode().equals(other.getStorageMode());
      }
      result = result && (hasVolumeName() == other.hasVolumeName());
      if (hasVolumeName()) {
        result = result && getVolumeName().equals(other.getVolumeName());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGateway()) {
        hash = (37 * hash) + GATEWAY_FIELD_NUMBER;
        hash = (53 * hash) + getGateway().hashCode();
      }
      if (hasSystem()) {
        hash = (37 * hash) + SYSTEM_FIELD_NUMBER;
        hash = (53 * hash) + getSystem().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasSslEnabled()) {
        hash = (37 * hash) + SSLENABLED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSslEnabled());
      }
      if (hasProtectionDomain()) {
        hash = (37 * hash) + PROTECTIONDOMAIN_FIELD_NUMBER;
        hash = (53 * hash) + getProtectionDomain().hashCode();
      }
      if (hasStoragePool()) {
        hash = (37 * hash) + STORAGEPOOL_FIELD_NUMBER;
        hash = (53 * hash) + getStoragePool().hashCode();
      }
      if (hasStorageMode()) {
        hash = (37 * hash) + STORAGEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getStorageMode().hashCode();
      }
      if (hasVolumeName()) {
        hash = (37 * hash) + VOLUMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeName().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ScaleIOPersistentVolumeSource represents a persistent ScaleIO volume
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ScaleIOPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ScaleIOPersistentVolumeSource)
        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        gateway_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        sslEnabled_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        protectionDomain_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        storagePool_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        storageMode_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        volumeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gateway_ = gateway_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sslEnabled_ = sslEnabled_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.protectionDomain_ = protectionDomain_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.storagePool_ = storagePool_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.storageMode_ = storageMode_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.volumeName_ = volumeName_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasGateway()) {
          bitField0_ |= 0x00000001;
          gateway_ = other.gateway_;
          onChanged();
        }
        if (other.hasSystem()) {
          bitField0_ |= 0x00000002;
          system_ = other.system_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasSslEnabled()) {
          setSslEnabled(other.getSslEnabled());
        }
        if (other.hasProtectionDomain()) {
          bitField0_ |= 0x00000010;
          protectionDomain_ = other.protectionDomain_;
          onChanged();
        }
        if (other.hasStoragePool()) {
          bitField0_ |= 0x00000020;
          storagePool_ = other.storagePool_;
          onChanged();
        }
        if (other.hasStorageMode()) {
          bitField0_ |= 0x00000040;
          storageMode_ = other.storageMode_;
          onChanged();
        }
        if (other.hasVolumeName()) {
          bitField0_ |= 0x00000080;
          volumeName_ = other.volumeName_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000100;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object gateway_ = "";
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public boolean hasGateway() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public java.lang.String getGateway() {
        java.lang.Object ref = gateway_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            gateway_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public com.google.protobuf.ByteString getGatewayBytes() {
        java.lang.Object ref = gateway_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          gateway_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder setGateway(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        gateway_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder clearGateway() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gateway_ = getDefaultInstance().getGateway();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder setGatewayBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        gateway_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object system_ = "";
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            system_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public com.google.protobuf.ByteString getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder setSystem(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000002);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder setSystemBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SecretReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.SecretReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.SecretReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.SecretReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SecretReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretReference secretRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretReference,
              io.kubernetes.client.proto.V1.SecretReference.Builder,
              io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretReference,
                  io.kubernetes.client.proto.V1.SecretReference.Builder,
                  io.kubernetes.client.proto.V1.SecretReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean sslEnabled_;
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public boolean hasSslEnabled() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public boolean getSslEnabled() {
        return sslEnabled_;
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public Builder setSslEnabled(boolean value) {
        bitField0_ |= 0x00000008;
        sslEnabled_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public Builder clearSslEnabled() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sslEnabled_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object protectionDomain_ = "";
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public boolean hasProtectionDomain() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public java.lang.String getProtectionDomain() {
        java.lang.Object ref = protectionDomain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protectionDomain_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public com.google.protobuf.ByteString getProtectionDomainBytes() {
        java.lang.Object ref = protectionDomain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          protectionDomain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder setProtectionDomain(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        protectionDomain_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder clearProtectionDomain() {
        bitField0_ = (bitField0_ & ~0x00000010);
        protectionDomain_ = getDefaultInstance().getProtectionDomain();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder setProtectionDomainBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        protectionDomain_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storagePool_ = "";
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public boolean hasStoragePool() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public java.lang.String getStoragePool() {
        java.lang.Object ref = storagePool_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storagePool_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public com.google.protobuf.ByteString getStoragePoolBytes() {
        java.lang.Object ref = storagePool_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storagePool_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder setStoragePool(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storagePool_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder clearStoragePool() {
        bitField0_ = (bitField0_ & ~0x00000020);
        storagePool_ = getDefaultInstance().getStoragePool();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder setStoragePoolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storagePool_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storageMode_ = "";
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public boolean hasStorageMode() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public java.lang.String getStorageMode() {
        java.lang.Object ref = storageMode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storageMode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public com.google.protobuf.ByteString getStorageModeBytes() {
        java.lang.Object ref = storageMode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storageMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder setStorageMode(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        storageMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder clearStorageMode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        storageMode_ = getDefaultInstance().getStorageMode();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder setStorageModeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        storageMode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeName_ = "";
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public boolean hasVolumeName() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public java.lang.String getVolumeName() {
        java.lang.Object ref = volumeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public com.google.protobuf.ByteString getVolumeNameBytes() {
        java.lang.Object ref = volumeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder setVolumeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder clearVolumeName() {
        bitField0_ = (bitField0_ & ~0x00000080);
        volumeName_ = getDefaultInstance().getVolumeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder setVolumeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs"
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000200;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000200);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ScaleIOPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ScaleIOPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ScaleIOPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ScaleIOPersistentVolumeSource>() {
          @java.lang.Override
          public ScaleIOPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ScaleIOPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ScaleIOPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ScaleIOPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ScaleIOPersistentVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ScaleIOVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ScaleIOVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    boolean hasGateway();
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    java.lang.String getGateway();
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    com.google.protobuf.ByteString getGatewayBytes();

    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    boolean hasSystem();
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    java.lang.String getSystem();
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    com.google.protobuf.ByteString getSystemBytes();

    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();

    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    boolean hasSslEnabled();
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    boolean getSslEnabled();

    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    boolean hasProtectionDomain();
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    java.lang.String getProtectionDomain();
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    com.google.protobuf.ByteString getProtectionDomainBytes();

    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    boolean hasStoragePool();
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    java.lang.String getStoragePool();
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    com.google.protobuf.ByteString getStoragePoolBytes();

    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    boolean hasStorageMode();
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    java.lang.String getStorageMode();
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    com.google.protobuf.ByteString getStorageModeBytes();

    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    boolean hasVolumeName();
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    java.lang.String getVolumeName();
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    com.google.protobuf.ByteString getVolumeNameBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    boolean getReadOnly();
  }
  /**
   *
   *
   * <pre>
   * ScaleIOVolumeSource represents a persistent ScaleIO volume
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ScaleIOVolumeSource}
   */
  public static final class ScaleIOVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ScaleIOVolumeSource)
      ScaleIOVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ScaleIOVolumeSource.newBuilder() to construct.
    private ScaleIOVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ScaleIOVolumeSource() {
      gateway_ = "";
      system_ = "";
      sslEnabled_ = false;
      protectionDomain_ = "";
      storagePool_ = "";
      storageMode_ = "";
      volumeName_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ScaleIOVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                gateway_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                system_ = bs;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                sslEnabled_ = input.readBool();
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                protectionDomain_ = bs;
                break;
              }
            case 50:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                storagePool_ = bs;
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                storageMode_ = bs;
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                volumeName_ = bs;
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                fsType_ = bs;
                break;
              }
            case 80:
              {
                bitField0_ |= 0x00000200;
                readOnly_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource.class,
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int GATEWAY_FIELD_NUMBER = 1;
    private volatile java.lang.Object gateway_;
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public boolean hasGateway() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public java.lang.String getGateway() {
      java.lang.Object ref = gateway_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          gateway_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The host address of the ScaleIO API Gateway.
     * </pre>
     *
     * <code>optional string gateway = 1;</code>
     */
    public com.google.protobuf.ByteString getGatewayBytes() {
      java.lang.Object ref = gateway_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        gateway_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SYSTEM_FIELD_NUMBER = 2;
    private volatile java.lang.Object system_;
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public boolean hasSystem() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public java.lang.String getSystem() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          system_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of the storage system as configured in ScaleIO.
     * </pre>
     *
     * <code>optional string system = 2;</code>
     */
    public com.google.protobuf.ByteString getSystemBytes() {
      java.lang.Object ref = system_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        system_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SECRETREF_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef references to the secret for ScaleIO user and other
     * sensitive information. If this is not provided, Login operation will fail.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    public static final int SSLENABLED_FIELD_NUMBER = 4;
    private boolean sslEnabled_;
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    public boolean hasSslEnabled() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Flag to enable/disable SSL communication with Gateway, default false
     * +optional
     * </pre>
     *
     * <code>optional bool sslEnabled = 4;</code>
     */
    public boolean getSslEnabled() {
      return sslEnabled_;
    }

    public static final int PROTECTIONDOMAIN_FIELD_NUMBER = 5;
    private volatile java.lang.Object protectionDomain_;
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public boolean hasProtectionDomain() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public java.lang.String getProtectionDomain() {
      java.lang.Object ref = protectionDomain_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protectionDomain_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of the ScaleIO Protection Domain for the configured storage.
     * +optional
     * </pre>
     *
     * <code>optional string protectionDomain = 5;</code>
     */
    public com.google.protobuf.ByteString getProtectionDomainBytes() {
      java.lang.Object ref = protectionDomain_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        protectionDomain_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEPOOL_FIELD_NUMBER = 6;
    private volatile java.lang.Object storagePool_;
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public boolean hasStoragePool() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public java.lang.String getStoragePool() {
      java.lang.Object ref = storagePool_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storagePool_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The ScaleIO Storage Pool associated with the protection domain.
     * +optional
     * </pre>
     *
     * <code>optional string storagePool = 6;</code>
     */
    public com.google.protobuf.ByteString getStoragePoolBytes() {
      java.lang.Object ref = storagePool_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storagePool_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEMODE_FIELD_NUMBER = 7;
    private volatile java.lang.Object storageMode_;
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public boolean hasStorageMode() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public java.lang.String getStorageMode() {
      java.lang.Object ref = storageMode_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storageMode_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
     * Default is ThinProvisioned.
     * +optional
     * </pre>
     *
     * <code>optional string storageMode = 7;</code>
     */
    public com.google.protobuf.ByteString getStorageModeBytes() {
      java.lang.Object ref = storageMode_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storageMode_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMENAME_FIELD_NUMBER = 8;
    private volatile java.lang.Object volumeName_;
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public boolean hasVolumeName() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public java.lang.String getVolumeName() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of a volume already created in the ScaleIO system
     * that is associated with this volume source.
     * </pre>
     *
     * <code>optional string volumeName = 8;</code>
     */
    public com.google.protobuf.ByteString getVolumeNameBytes() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 9;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs".
     * Default is "xfs".
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 9;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 10;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 10;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, gateway_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, system_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, sslEnabled_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, protectionDomain_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 6, storagePool_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, storageMode_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, volumeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, fsType_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBool(10, readOnly_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, gateway_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, system_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSecretRef());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, sslEnabled_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, protectionDomain_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, storagePool_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, storageMode_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, volumeName_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, fsType_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(10, readOnly_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ScaleIOVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ScaleIOVolumeSource other =
          (io.kubernetes.client.proto.V1.ScaleIOVolumeSource) obj;

      boolean result = true;
      result = result && (hasGateway() == other.hasGateway());
      if (hasGateway()) {
        result = result && getGateway().equals(other.getGateway());
      }
      result = result && (hasSystem() == other.hasSystem());
      if (hasSystem()) {
        result = result && getSystem().equals(other.getSystem());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && (hasSslEnabled() == other.hasSslEnabled());
      if (hasSslEnabled()) {
        result = result && (getSslEnabled() == other.getSslEnabled());
      }
      result = result && (hasProtectionDomain() == other.hasProtectionDomain());
      if (hasProtectionDomain()) {
        result = result && getProtectionDomain().equals(other.getProtectionDomain());
      }
      result = result && (hasStoragePool() == other.hasStoragePool());
      if (hasStoragePool()) {
        result = result && getStoragePool().equals(other.getStoragePool());
      }
      result = result && (hasStorageMode() == other.hasStorageMode());
      if (hasStorageMode()) {
        result = result && getStorageMode().equals(other.getStorageMode());
      }
      result = result && (hasVolumeName() == other.hasVolumeName());
      if (hasVolumeName()) {
        result = result && getVolumeName().equals(other.getVolumeName());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasGateway()) {
        hash = (37 * hash) + GATEWAY_FIELD_NUMBER;
        hash = (53 * hash) + getGateway().hashCode();
      }
      if (hasSystem()) {
        hash = (37 * hash) + SYSTEM_FIELD_NUMBER;
        hash = (53 * hash) + getSystem().hashCode();
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      if (hasSslEnabled()) {
        hash = (37 * hash) + SSLENABLED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getSslEnabled());
      }
      if (hasProtectionDomain()) {
        hash = (37 * hash) + PROTECTIONDOMAIN_FIELD_NUMBER;
        hash = (53 * hash) + getProtectionDomain().hashCode();
      }
      if (hasStoragePool()) {
        hash = (37 * hash) + STORAGEPOOL_FIELD_NUMBER;
        hash = (53 * hash) + getStoragePool().hashCode();
      }
      if (hasStorageMode()) {
        hash = (37 * hash) + STORAGEMODE_FIELD_NUMBER;
        hash = (53 * hash) + getStorageMode().hashCode();
      }
      if (hasVolumeName()) {
        hash = (37 * hash) + VOLUMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeName().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ScaleIOVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ScaleIOVolumeSource represents a persistent ScaleIO volume
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ScaleIOVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ScaleIOVolumeSource)
        io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ScaleIOVolumeSource.class,
                io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ScaleIOVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        gateway_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        system_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        sslEnabled_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        protectionDomain_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        storagePool_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        storageMode_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        volumeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000080);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource build() {
        io.kubernetes.client.proto.V1.ScaleIOVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.ScaleIOVolumeSource result =
            new io.kubernetes.client.proto.V1.ScaleIOVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.gateway_ = gateway_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.system_ = system_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.sslEnabled_ = sslEnabled_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.protectionDomain_ = protectionDomain_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.storagePool_ = storagePool_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.storageMode_ = storageMode_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.volumeName_ = volumeName_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.readOnly_ = readOnly_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ScaleIOVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.ScaleIOVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ScaleIOVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance())
          return this;
        if (other.hasGateway()) {
          bitField0_ |= 0x00000001;
          gateway_ = other.gateway_;
          onChanged();
        }
        if (other.hasSystem()) {
          bitField0_ |= 0x00000002;
          system_ = other.system_;
          onChanged();
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        if (other.hasSslEnabled()) {
          setSslEnabled(other.getSslEnabled());
        }
        if (other.hasProtectionDomain()) {
          bitField0_ |= 0x00000010;
          protectionDomain_ = other.protectionDomain_;
          onChanged();
        }
        if (other.hasStoragePool()) {
          bitField0_ |= 0x00000020;
          storagePool_ = other.storagePool_;
          onChanged();
        }
        if (other.hasStorageMode()) {
          bitField0_ |= 0x00000040;
          storageMode_ = other.storageMode_;
          onChanged();
        }
        if (other.hasVolumeName()) {
          bitField0_ |= 0x00000080;
          volumeName_ = other.volumeName_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000100;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ScaleIOVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ScaleIOVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object gateway_ = "";
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public boolean hasGateway() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public java.lang.String getGateway() {
        java.lang.Object ref = gateway_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            gateway_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public com.google.protobuf.ByteString getGatewayBytes() {
        java.lang.Object ref = gateway_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          gateway_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder setGateway(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        gateway_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder clearGateway() {
        bitField0_ = (bitField0_ & ~0x00000001);
        gateway_ = getDefaultInstance().getGateway();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The host address of the ScaleIO API Gateway.
       * </pre>
       *
       * <code>optional string gateway = 1;</code>
       */
      public Builder setGatewayBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        gateway_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object system_ = "";
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public boolean hasSystem() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public java.lang.String getSystem() {
        java.lang.Object ref = system_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            system_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public com.google.protobuf.ByteString getSystemBytes() {
        java.lang.Object ref = system_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          system_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder setSystem(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder clearSystem() {
        bitField0_ = (bitField0_ & ~0x00000002);
        system_ = getDefaultInstance().getSystem();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the storage system as configured in ScaleIO.
       * </pre>
       *
       * <code>optional string system = 2;</code>
       */
      public Builder setSystemBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        system_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef references to the secret for ScaleIO user and other
       * sensitive information. If this is not provided, Login operation will fail.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      private boolean sslEnabled_;
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public boolean hasSslEnabled() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public boolean getSslEnabled() {
        return sslEnabled_;
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public Builder setSslEnabled(boolean value) {
        bitField0_ |= 0x00000008;
        sslEnabled_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flag to enable/disable SSL communication with Gateway, default false
       * +optional
       * </pre>
       *
       * <code>optional bool sslEnabled = 4;</code>
       */
      public Builder clearSslEnabled() {
        bitField0_ = (bitField0_ & ~0x00000008);
        sslEnabled_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object protectionDomain_ = "";
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public boolean hasProtectionDomain() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public java.lang.String getProtectionDomain() {
        java.lang.Object ref = protectionDomain_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protectionDomain_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public com.google.protobuf.ByteString getProtectionDomainBytes() {
        java.lang.Object ref = protectionDomain_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          protectionDomain_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder setProtectionDomain(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        protectionDomain_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder clearProtectionDomain() {
        bitField0_ = (bitField0_ & ~0x00000010);
        protectionDomain_ = getDefaultInstance().getProtectionDomain();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the ScaleIO Protection Domain for the configured storage.
       * +optional
       * </pre>
       *
       * <code>optional string protectionDomain = 5;</code>
       */
      public Builder setProtectionDomainBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        protectionDomain_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storagePool_ = "";
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public boolean hasStoragePool() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public java.lang.String getStoragePool() {
        java.lang.Object ref = storagePool_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storagePool_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public com.google.protobuf.ByteString getStoragePoolBytes() {
        java.lang.Object ref = storagePool_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storagePool_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder setStoragePool(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storagePool_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder clearStoragePool() {
        bitField0_ = (bitField0_ & ~0x00000020);
        storagePool_ = getDefaultInstance().getStoragePool();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The ScaleIO Storage Pool associated with the protection domain.
       * +optional
       * </pre>
       *
       * <code>optional string storagePool = 6;</code>
       */
      public Builder setStoragePoolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        storagePool_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storageMode_ = "";
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public boolean hasStorageMode() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public java.lang.String getStorageMode() {
        java.lang.Object ref = storageMode_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storageMode_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public com.google.protobuf.ByteString getStorageModeBytes() {
        java.lang.Object ref = storageMode_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storageMode_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder setStorageMode(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        storageMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder clearStorageMode() {
        bitField0_ = (bitField0_ & ~0x00000040);
        storageMode_ = getDefaultInstance().getStorageMode();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned.
       * Default is ThinProvisioned.
       * +optional
       * </pre>
       *
       * <code>optional string storageMode = 7;</code>
       */
      public Builder setStorageModeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        storageMode_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeName_ = "";
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public boolean hasVolumeName() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public java.lang.String getVolumeName() {
        java.lang.Object ref = volumeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public com.google.protobuf.ByteString getVolumeNameBytes() {
        java.lang.Object ref = volumeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder setVolumeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder clearVolumeName() {
        bitField0_ = (bitField0_ & ~0x00000080);
        volumeName_ = getDefaultInstance().getVolumeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of a volume already created in the ScaleIO system
       * that is associated with this volume source.
       * </pre>
       *
       * <code>optional string volumeName = 8;</code>
       */
      public Builder setVolumeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000080;
        volumeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000100);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs".
       * Default is "xfs".
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 9;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000200;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 10;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000200);
        readOnly_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ScaleIOVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ScaleIOVolumeSource)
    private static final io.kubernetes.client.proto.V1.ScaleIOVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ScaleIOVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.ScaleIOVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ScaleIOVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<ScaleIOVolumeSource>() {
          @java.lang.Override
          public ScaleIOVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ScaleIOVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ScaleIOVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ScaleIOVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ScaleIOVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ScopeSelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ScopeSelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
        getMatchExpressionsList();
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement getMatchExpressions(int index);
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    int getMatchExpressionsCount();
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>
        getMatchExpressionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder
        getMatchExpressionsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * A scope selector represents the AND of the selectors represented
   * by the scoped-resource selector requirements.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ScopeSelector}
   */
  public static final class ScopeSelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ScopeSelector)
      ScopeSelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ScopeSelector.newBuilder() to construct.
    private ScopeSelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ScopeSelector() {
      matchExpressions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ScopeSelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  matchExpressions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>();
                  mutable_bitField0_ |= 0x00000001;
                }
                matchExpressions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          matchExpressions_ = java.util.Collections.unmodifiableList(matchExpressions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ScopeSelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ScopeSelector.class,
              io.kubernetes.client.proto.V1.ScopeSelector.Builder.class);
    }

    public static final int MATCHEXPRESSIONS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
        matchExpressions_;
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
        getMatchExpressionsList() {
      return matchExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>
        getMatchExpressionsOrBuilderList() {
      return matchExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    public int getMatchExpressionsCount() {
      return matchExpressions_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement getMatchExpressions(
        int index) {
      return matchExpressions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of scope selector requirements by scope of the resources.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder
        getMatchExpressionsOrBuilder(int index) {
      return matchExpressions_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < matchExpressions_.size(); i++) {
        output.writeMessage(1, matchExpressions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < matchExpressions_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, matchExpressions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ScopeSelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ScopeSelector other =
          (io.kubernetes.client.proto.V1.ScopeSelector) obj;

      boolean result = true;
      result = result && getMatchExpressionsList().equals(other.getMatchExpressionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMatchExpressionsCount() > 0) {
        hash = (37 * hash) + MATCHEXPRESSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMatchExpressionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ScopeSelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A scope selector represents the AND of the selectors represented
     * by the scoped-resource selector requirements.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ScopeSelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ScopeSelector)
        io.kubernetes.client.proto.V1.ScopeSelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ScopeSelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ScopeSelector.class,
                io.kubernetes.client.proto.V1.ScopeSelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ScopeSelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMatchExpressionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopeSelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopeSelector build() {
        io.kubernetes.client.proto.V1.ScopeSelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopeSelector buildPartial() {
        io.kubernetes.client.proto.V1.ScopeSelector result =
            new io.kubernetes.client.proto.V1.ScopeSelector(this);
        int from_bitField0_ = bitField0_;
        if (matchExpressionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            matchExpressions_ = java.util.Collections.unmodifiableList(matchExpressions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.matchExpressions_ = matchExpressions_;
        } else {
          result.matchExpressions_ = matchExpressionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ScopeSelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.ScopeSelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ScopeSelector other) {
        if (other == io.kubernetes.client.proto.V1.ScopeSelector.getDefaultInstance()) return this;
        if (matchExpressionsBuilder_ == null) {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressions_.isEmpty()) {
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMatchExpressionsIsMutable();
              matchExpressions_.addAll(other.matchExpressions_);
            }
            onChanged();
          }
        } else {
          if (!other.matchExpressions_.isEmpty()) {
            if (matchExpressionsBuilder_.isEmpty()) {
              matchExpressionsBuilder_.dispose();
              matchExpressionsBuilder_ = null;
              matchExpressions_ = other.matchExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              matchExpressionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getMatchExpressionsFieldBuilder()
                      : null;
            } else {
              matchExpressionsBuilder_.addAllMessages(other.matchExpressions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ScopeSelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ScopeSelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
          matchExpressions_ = java.util.Collections.emptyList();

      private void ensureMatchExpressionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          matchExpressions_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>(
                  matchExpressions_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement,
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>
          matchExpressionsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
          getMatchExpressionsList() {
        if (matchExpressionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        } else {
          return matchExpressionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public int getMatchExpressionsCount() {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.size();
        } else {
          return matchExpressionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement getMatchExpressions(
          int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);
        } else {
          return matchExpressionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder setMatchExpressions(
          int index, io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder setMatchExpressions(
          int index,
          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.set(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          int index, io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement value) {
        if (matchExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, value);
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addMatchExpressions(
          int index,
          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder builderForValue) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.add(index, builderForValue.build());
          onChanged();
        } else {
          matchExpressionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder addAllMatchExpressions(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement>
              values) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, matchExpressions_);
          onChanged();
        } else {
          matchExpressionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder clearMatchExpressions() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          matchExpressionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public Builder removeMatchExpressions(int index) {
        if (matchExpressionsBuilder_ == null) {
          ensureMatchExpressionsIsMutable();
          matchExpressions_.remove(index);
          onChanged();
        } else {
          matchExpressionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder
          getMatchExpressionsBuilder(int index) {
        return getMatchExpressionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder
          getMatchExpressionsOrBuilder(int index) {
        if (matchExpressionsBuilder_ == null) {
          return matchExpressions_.get(index);
        } else {
          return matchExpressionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>
          getMatchExpressionsOrBuilderList() {
        if (matchExpressionsBuilder_ != null) {
          return matchExpressionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matchExpressions_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder
          addMatchExpressionsBuilder() {
        return getMatchExpressionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder
          addMatchExpressionsBuilder(int index) {
        return getMatchExpressionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of scope selector requirements by scope of the resources.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.ScopedResourceSelectorRequirement matchExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder>
          getMatchExpressionsBuilderList() {
        return getMatchExpressionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement,
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder,
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>
          getMatchExpressionsFieldBuilder() {
        if (matchExpressionsBuilder_ == null) {
          matchExpressionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement,
                  io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder,
                  io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder>(
                  matchExpressions_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          matchExpressions_ = null;
        }
        return matchExpressionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ScopeSelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ScopeSelector)
    private static final io.kubernetes.client.proto.V1.ScopeSelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ScopeSelector();
    }

    public static io.kubernetes.client.proto.V1.ScopeSelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ScopeSelector> PARSER =
        new com.google.protobuf.AbstractParser<ScopeSelector>() {
          @java.lang.Override
          public ScopeSelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ScopeSelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ScopeSelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ScopeSelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ScopeSelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ScopedResourceSelectorRequirementOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ScopedResourceSelectorRequirement)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    boolean hasScopeName();
    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    java.lang.String getScopeName();
    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    com.google.protobuf.ByteString getScopeNameBytes();

    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    boolean hasOperator();
    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    java.lang.String getOperator();
    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    com.google.protobuf.ByteString getOperatorBytes();

    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.util.List<java.lang.String> getValuesList();
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    int getValuesCount();
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    java.lang.String getValues(int index);
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    com.google.protobuf.ByteString getValuesBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator
   * that relates the scope name and values.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ScopedResourceSelectorRequirement}
   */
  public static final class ScopedResourceSelectorRequirement
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ScopedResourceSelectorRequirement)
      ScopedResourceSelectorRequirementOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ScopedResourceSelectorRequirement.newBuilder() to construct.
    private ScopedResourceSelectorRequirement(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ScopedResourceSelectorRequirement() {
      scopeName_ = "";
      operator_ = "";
      values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ScopedResourceSelectorRequirement(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                scopeName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                operator_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  values_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                values_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = values_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.class,
              io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder.class);
    }

    private int bitField0_;
    public static final int SCOPENAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object scopeName_;
    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    public boolean hasScopeName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    public java.lang.String getScopeName() {
      java.lang.Object ref = scopeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          scopeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of the scope that the selector applies to.
     * </pre>
     *
     * <code>optional string scopeName = 1;</code>
     */
    public com.google.protobuf.ByteString getScopeNameBytes() {
      java.lang.Object ref = scopeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        scopeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_FIELD_NUMBER = 2;
    private volatile java.lang.Object operator_;
    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public boolean hasOperator() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public java.lang.String getOperator() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          operator_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Represents a scope's relationship to a set of values.
     * Valid operators are In, NotIn, Exists, DoesNotExist.
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public com.google.protobuf.ByteString getOperatorBytes() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        operator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUES_FIELD_NUMBER = 3;
    private com.google.protobuf.LazyStringList values_;
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ProtocolStringList getValuesList() {
      return values_;
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     *
     *
     * <pre>
     * An array of string values. If the operator is In or NotIn,
     * the values array must be non-empty. If the operator is Exists or DoesNotExist,
     * the values array must be empty.
     * This array is replaced during a strategic merge patch.
     * +optional
     * </pre>
     *
     * <code>repeated string values = 3;</code>
     */
    public com.google.protobuf.ByteString getValuesBytes(int index) {
      return values_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, scopeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, operator_);
      }
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, values_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, scopeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, operator_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement other =
          (io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement) obj;

      boolean result = true;
      result = result && (hasScopeName() == other.hasScopeName());
      if (hasScopeName()) {
        result = result && getScopeName().equals(other.getScopeName());
      }
      result = result && (hasOperator() == other.hasOperator());
      if (hasOperator()) {
        result = result && getOperator().equals(other.getOperator());
      }
      result = result && getValuesList().equals(other.getValuesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasScopeName()) {
        hash = (37 * hash) + SCOPENAME_FIELD_NUMBER;
        hash = (53 * hash) + getScopeName().hashCode();
      }
      if (hasOperator()) {
        hash = (37 * hash) + OPERATOR_FIELD_NUMBER;
        hash = (53 * hash) + getOperator().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
        parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
        parseDelimitedFrom(
            java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A scoped-resource selector requirement is a selector that contains values, a scope name, and an operator
     * that relates the scope name and values.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ScopedResourceSelectorRequirement}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ScopedResourceSelectorRequirement)
        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirementOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.class,
                io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        scopeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        operator_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement build() {
        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement buildPartial() {
        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement result =
            new io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.scopeName_ = scopeName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.operator_ = operator_;
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = values_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000004);
        }
        result.values_ = values_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement) {
          return mergeFrom((io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement other) {
        if (other
            == io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement.getDefaultInstance())
          return this;
        if (other.hasScopeName()) {
          bitField0_ |= 0x00000001;
          scopeName_ = other.scopeName_;
          onChanged();
        }
        if (other.hasOperator()) {
          bitField0_ |= 0x00000002;
          operator_ = other.operator_;
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object scopeName_ = "";
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public boolean hasScopeName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public java.lang.String getScopeName() {
        java.lang.Object ref = scopeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            scopeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public com.google.protobuf.ByteString getScopeNameBytes() {
        java.lang.Object ref = scopeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          scopeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public Builder setScopeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        scopeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public Builder clearScopeName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        scopeName_ = getDefaultInstance().getScopeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the scope that the selector applies to.
       * </pre>
       *
       * <code>optional string scopeName = 1;</code>
       */
      public Builder setScopeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        scopeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object operator_ = "";
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public boolean hasOperator() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public java.lang.String getOperator() {
        java.lang.Object ref = operator_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            operator_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public com.google.protobuf.ByteString getOperatorBytes() {
        java.lang.Object ref = operator_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          operator_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperator(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder clearOperator() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operator_ = getDefaultInstance().getOperator();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Represents a scope's relationship to a set of values.
       * Valid operators are In, NotIn, Exists, DoesNotExist.
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperatorBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList values_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
          bitField0_ |= 0x00000004;
        }
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ProtocolStringList getValuesList() {
        return values_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public com.google.protobuf.ByteString getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder setValues(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValues(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addAllValues(java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, values_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder clearValues() {
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. If the operator is In or NotIn,
       * the values array must be non-empty. If the operator is Exists or DoesNotExist,
       * the values array must be empty.
       * This array is replaced during a strategic merge patch.
       * +optional
       * </pre>
       *
       * <code>repeated string values = 3;</code>
       */
      public Builder addValuesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ScopedResourceSelectorRequirement)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ScopedResourceSelectorRequirement)
    private static final io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement();
    }

    public static io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ScopedResourceSelectorRequirement> PARSER =
        new com.google.protobuf.AbstractParser<ScopedResourceSelectorRequirement>() {
          @java.lang.Override
          public ScopedResourceSelectorRequirement parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ScopedResourceSelectorRequirement(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ScopedResourceSelectorRequirement> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ScopedResourceSelectorRequirement> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ScopedResourceSelectorRequirement
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Secret)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    int getDataCount();
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    boolean containsData(java.lang.String key);
    /** Use {@link #getDataMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, com.google.protobuf.ByteString> getData();
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    java.util.Map<java.lang.String, com.google.protobuf.ByteString> getDataMap();
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    com.google.protobuf.ByteString getDataOrDefault(
        java.lang.String key, com.google.protobuf.ByteString defaultValue);
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    com.google.protobuf.ByteString getDataOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    int getStringDataCount();
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    boolean containsStringData(java.lang.String key);
    /** Use {@link #getStringDataMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getStringData();
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getStringDataMap();
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    java.lang.String getStringDataOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    java.lang.String getStringDataOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();
  }
  /**
   *
   *
   * <pre>
   * Secret holds secret data of a certain type. The total bytes of the values in
   * the Data field must be less than MaxSecretSize bytes.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Secret}
   */
  public static final class Secret extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Secret)
      SecretOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Secret.newBuilder() to construct.
    private Secret(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Secret() {
      type_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Secret(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  data_ =
                      com.google.protobuf.MapField.newMapField(DataDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString>
                    data__ =
                        input.readMessage(
                            DataDefaultEntryHolder.defaultEntry.getParserForType(),
                            extensionRegistry);
                data_.getMutableMap().put(data__.getKey(), data__.getValue());
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                type_ = bs;
                break;
              }
            case 34:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  stringData_ =
                      com.google.protobuf.MapField.newMapField(
                          StringDataDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000004;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> stringData__ =
                    input.readMessage(
                        StringDataDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                stringData_.getMutableMap().put(stringData__.getKey(), stringData__.getValue());
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Secret_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 2:
          return internalGetData();
        case 4:
          return internalGetStringData();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Secret_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Secret.class,
              io.kubernetes.client.proto.V1.Secret.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int DATA_FIELD_NUMBER = 2;

    private static final class DataDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString>
          defaultEntry =
              com.google.protobuf.MapEntry
                  .<java.lang.String, com.google.protobuf.ByteString>newDefaultInstance(
                      io.kubernetes
                          .client
                          .proto
                          .V1
                          .internal_static_k8s_io_api_core_v1_Secret_DataEntry_descriptor,
                      com.google.protobuf.WireFormat.FieldType.STRING,
                      "",
                      com.google.protobuf.WireFormat.FieldType.BYTES,
                      com.google.protobuf.ByteString.EMPTY);
    }

    private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString> data_;

    private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
        internalGetData() {
      if (data_ == null) {
        return com.google.protobuf.MapField.emptyMapField(DataDefaultEntryHolder.defaultEntry);
      }
      return data_;
    }

    public int getDataCount() {
      return internalGetData().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    public boolean containsData(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetData().getMap().containsKey(key);
    }
    /** Use {@link #getDataMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getData() {
      return getDataMap();
    }
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getDataMap() {
      return internalGetData().getMap();
    }
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    public com.google.protobuf.ByteString getDataOrDefault(
        java.lang.String key, com.google.protobuf.ByteString defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
          internalGetData().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Data contains the secret data. Each key must consist of alphanumeric
     * characters, '-', '_' or '.'. The serialized form of the secret data is a
     * base64 encoded string, representing the arbitrary (possibly non-string)
     * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
     * +optional
     * </pre>
     *
     * <code>map&lt;string, bytes&gt; data = 2;</code>
     */
    public com.google.protobuf.ByteString getDataOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
          internalGetData().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int STRINGDATA_FIELD_NUMBER = 4;

    private static final class StringDataDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> stringData_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String>
        internalGetStringData() {
      if (stringData_ == null) {
        return com.google.protobuf.MapField.emptyMapField(
            StringDataDefaultEntryHolder.defaultEntry);
      }
      return stringData_;
    }

    public int getStringDataCount() {
      return internalGetStringData().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    public boolean containsStringData(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetStringData().getMap().containsKey(key);
    }
    /** Use {@link #getStringDataMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getStringData() {
      return getStringDataMap();
    }
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getStringDataMap() {
      return internalGetStringData().getMap();
    }
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    public java.lang.String getStringDataOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetStringData().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * stringData allows specifying non-binary secret data in string form.
     * It is provided as a write-only convenience method.
     * All keys and values are merged into the data field on write, overwriting any existing values.
     * It is never output when reading from the API.
     * +k8s:conversion-gen=false
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; stringData = 4;</code>
     */
    public java.lang.String getStringDataOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetStringData().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int TYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Used to facilitate programmatic handling of secret data.
     * +optional
     * </pre>
     *
     * <code>optional string type = 3;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetData(), DataDefaultEntryHolder.defaultEntry, 2);
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, type_);
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetStringData(), StringDataDefaultEntryHolder.defaultEntry, 4);
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (java.util.Map.Entry<java.lang.String, com.google.protobuf.ByteString> entry :
          internalGetData().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, com.google.protobuf.ByteString> data__ =
            DataDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, data__);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, type_);
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetStringData().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> stringData__ =
            StringDataDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, stringData__);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Secret)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Secret other = (io.kubernetes.client.proto.V1.Secret) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && internalGetData().equals(other.internalGetData());
      result = result && internalGetStringData().equals(other.internalGetStringData());
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (!internalGetData().getMap().isEmpty()) {
        hash = (37 * hash) + DATA_FIELD_NUMBER;
        hash = (53 * hash) + internalGetData().hashCode();
      }
      if (!internalGetStringData().getMap().isEmpty()) {
        hash = (37 * hash) + STRINGDATA_FIELD_NUMBER;
        hash = (53 * hash) + internalGetStringData().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Secret parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Secret parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Secret parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Secret prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Secret holds secret data of a certain type. The total bytes of the values in
     * the Data field must be less than MaxSecretSize bytes.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Secret}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Secret)
        io.kubernetes.client.proto.V1.SecretOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Secret_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 2:
            return internalGetData();
          case 4:
            return internalGetStringData();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMutableData();
          case 4:
            return internalGetMutableStringData();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Secret_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Secret.class,
                io.kubernetes.client.proto.V1.Secret.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Secret.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        internalGetMutableData().clear();
        internalGetMutableStringData().clear();
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Secret_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Secret getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Secret.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Secret build() {
        io.kubernetes.client.proto.V1.Secret result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Secret buildPartial() {
        io.kubernetes.client.proto.V1.Secret result =
            new io.kubernetes.client.proto.V1.Secret(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        result.data_ = internalGetData();
        result.data_.makeImmutable();
        result.stringData_ = internalGetStringData();
        result.stringData_.makeImmutable();
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Secret) {
          return mergeFrom((io.kubernetes.client.proto.V1.Secret) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Secret other) {
        if (other == io.kubernetes.client.proto.V1.Secret.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        internalGetMutableData().mergeFrom(other.internalGetData());
        internalGetMutableStringData().mergeFrom(other.internalGetStringData());
        if (other.hasType()) {
          bitField0_ |= 0x00000008;
          type_ = other.type_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Secret parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Secret) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString> data_;

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
          internalGetData() {
        if (data_ == null) {
          return com.google.protobuf.MapField.emptyMapField(DataDefaultEntryHolder.defaultEntry);
        }
        return data_;
      }

      private com.google.protobuf.MapField<java.lang.String, com.google.protobuf.ByteString>
          internalGetMutableData() {
        onChanged();
        ;
        if (data_ == null) {
          data_ = com.google.protobuf.MapField.newMapField(DataDefaultEntryHolder.defaultEntry);
        }
        if (!data_.isMutable()) {
          data_ = data_.copy();
        }
        return data_;
      }

      public int getDataCount() {
        return internalGetData().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public boolean containsData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetData().getMap().containsKey(key);
      }
      /** Use {@link #getDataMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getData() {
        return getDataMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getDataMap() {
        return internalGetData().getMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public com.google.protobuf.ByteString getDataOrDefault(
          java.lang.String key, com.google.protobuf.ByteString defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
            internalGetData().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public com.google.protobuf.ByteString getDataOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, com.google.protobuf.ByteString> map =
            internalGetData().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearData() {
        internalGetMutableData().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public Builder removeData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableData().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, com.google.protobuf.ByteString> getMutableData() {
        return internalGetMutableData().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public Builder putData(java.lang.String key, com.google.protobuf.ByteString value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableData().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Data contains the secret data. Each key must consist of alphanumeric
       * characters, '-', '_' or '.'. The serialized form of the secret data is a
       * base64 encoded string, representing the arbitrary (possibly non-string)
       * data value here. Described in https://tools.ietf.org/html/rfc4648#section-4
       * +optional
       * </pre>
       *
       * <code>map&lt;string, bytes&gt; data = 2;</code>
       */
      public Builder putAllData(
          java.util.Map<java.lang.String, com.google.protobuf.ByteString> values) {
        internalGetMutableData().getMutableMap().putAll(values);
        return this;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> stringData_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetStringData() {
        if (stringData_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              StringDataDefaultEntryHolder.defaultEntry);
        }
        return stringData_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableStringData() {
        onChanged();
        ;
        if (stringData_ == null) {
          stringData_ =
              com.google.protobuf.MapField.newMapField(StringDataDefaultEntryHolder.defaultEntry);
        }
        if (!stringData_.isMutable()) {
          stringData_ = stringData_.copy();
        }
        return stringData_;
      }

      public int getStringDataCount() {
        return internalGetStringData().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public boolean containsStringData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetStringData().getMap().containsKey(key);
      }
      /** Use {@link #getStringDataMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getStringData() {
        return getStringDataMap();
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getStringDataMap() {
        return internalGetStringData().getMap();
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public java.lang.String getStringDataOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetStringData().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public java.lang.String getStringDataOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetStringData().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearStringData() {
        internalGetMutableStringData().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public Builder removeStringData(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableStringData().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableStringData() {
        return internalGetMutableStringData().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public Builder putStringData(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableStringData().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * stringData allows specifying non-binary secret data in string form.
       * It is provided as a write-only convenience method.
       * All keys and values are merged into the data field on write, overwriting any existing values.
       * It is never output when reading from the API.
       * +k8s:conversion-gen=false
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; stringData = 4;</code>
       */
      public Builder putAllStringData(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableStringData().getMutableMap().putAll(values);
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Used to facilitate programmatic handling of secret data.
       * +optional
       * </pre>
       *
       * <code>optional string type = 3;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        type_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Secret)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Secret)
    private static final io.kubernetes.client.proto.V1.Secret DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Secret();
    }

    public static io.kubernetes.client.proto.V1.Secret getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Secret> PARSER =
        new com.google.protobuf.AbstractParser<Secret>() {
          @java.lang.Override
          public Secret parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Secret(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Secret> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Secret> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Secret getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretEnvSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretEnvSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    boolean hasLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * Specify whether the Secret must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the Secret must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * SecretEnvSource selects a Secret to populate the environment
   * variables with.
   * The contents of the target Secret's Data field will represent the
   * key-value pairs as environment variables.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretEnvSource}
   */
  public static final class SecretEnvSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretEnvSource)
      SecretEnvSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretEnvSource.newBuilder() to construct.
    private SecretEnvSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretEnvSource() {
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretEnvSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretEnvSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretEnvSource.class,
              io.kubernetes.client.proto.V1.SecretEnvSource.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /**
     *
     *
     * <pre>
     * The Secret to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int OPTIONAL_FIELD_NUMBER = 2;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the Secret must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the Secret must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 2;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretEnvSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretEnvSource other =
          (io.kubernetes.client.proto.V1.SecretEnvSource) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretEnvSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SecretEnvSource selects a Secret to populate the environment
     * variables with.
     * The contents of the target Secret's Data field will represent the
     * key-value pairs as environment variables.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretEnvSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretEnvSource)
        io.kubernetes.client.proto.V1.SecretEnvSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretEnvSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretEnvSource.class,
                io.kubernetes.client.proto.V1.SecretEnvSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretEnvSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretEnvSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretEnvSource build() {
        io.kubernetes.client.proto.V1.SecretEnvSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretEnvSource buildPartial() {
        io.kubernetes.client.proto.V1.SecretEnvSource result =
            new io.kubernetes.client.proto.V1.SecretEnvSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretEnvSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretEnvSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretEnvSource other) {
        if (other == io.kubernetes.client.proto.V1.SecretEnvSource.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretEnvSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SecretEnvSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       *
       *
       * <pre>
       * The Secret to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the Secret must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000002;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 2;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000002);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretEnvSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretEnvSource)
    private static final io.kubernetes.client.proto.V1.SecretEnvSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretEnvSource();
    }

    public static io.kubernetes.client.proto.V1.SecretEnvSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretEnvSource> PARSER =
        new com.google.protobuf.AbstractParser<SecretEnvSource>() {
          @java.lang.Override
          public SecretEnvSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretEnvSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretEnvSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretEnvSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretEnvSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretKeySelectorOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretKeySelector)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    boolean hasLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * SecretKeySelector selects a key of a Secret.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretKeySelector}
   */
  public static final class SecretKeySelector extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretKeySelector)
      SecretKeySelectorOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretKeySelector.newBuilder() to construct.
    private SecretKeySelector(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretKeySelector() {
      key_ = "";
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretKeySelector(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                key_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretKeySelector_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretKeySelector.class,
              io.kubernetes.client.proto.V1.SecretKeySelector.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /**
     *
     *
     * <pre>
     * The name of the secret in the pod's namespace to select from.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int KEY_FIELD_NUMBER = 2;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The key of the secret to select from.  Must be a valid secret key.
     * </pre>
     *
     * <code>optional string key = 2;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPTIONAL_FIELD_NUMBER = 3;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 3;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, key_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(3, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, key_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(3, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretKeySelector)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretKeySelector other =
          (io.kubernetes.client.proto.V1.SecretKeySelector) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretKeySelector prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SecretKeySelector selects a key of a Secret.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretKeySelector}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretKeySelector)
        io.kubernetes.client.proto.V1.SecretKeySelectorOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretKeySelector_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretKeySelector.class,
                io.kubernetes.client.proto.V1.SecretKeySelector.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretKeySelector.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretKeySelector getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretKeySelector build() {
        io.kubernetes.client.proto.V1.SecretKeySelector result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretKeySelector buildPartial() {
        io.kubernetes.client.proto.V1.SecretKeySelector result =
            new io.kubernetes.client.proto.V1.SecretKeySelector(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretKeySelector) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretKeySelector) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretKeySelector other) {
        if (other == io.kubernetes.client.proto.V1.SecretKeySelector.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (other.hasKey()) {
          bitField0_ |= 0x00000002;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretKeySelector parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.SecretKeySelector) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of the secret in the pod's namespace to select from.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000002);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The key of the secret to select from.  Must be a valid secret key.
       * </pre>
       *
       * <code>optional string key = 2;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        key_ = value;
        onChanged();
        return this;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000004;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 3;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretKeySelector)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretKeySelector)
    private static final io.kubernetes.client.proto.V1.SecretKeySelector DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretKeySelector();
    }

    public static io.kubernetes.client.proto.V1.SecretKeySelector getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretKeySelector> PARSER =
        new com.google.protobuf.AbstractParser<SecretKeySelector>() {
          @java.lang.Override
          public SecretKeySelector parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretKeySelector(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretKeySelector> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretKeySelector> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretKeySelector getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Secret> getItemsList();
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Secret getItems(int index);
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.SecretOrBuilder> getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    io.kubernetes.client.proto.V1.SecretOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * SecretList is a list of Secret.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretList}
   */
  public static final class SecretList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretList)
      SecretListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretList.newBuilder() to construct.
    private SecretList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Secret>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Secret.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_SecretList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretList.class,
              io.kubernetes.client.proto.V1.SecretList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Secret> items_;
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Secret> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.SecretOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Secret getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Items is a list of secret objects.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.SecretOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretList other =
          (io.kubernetes.client.proto.V1.SecretList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SecretList is a list of Secret.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretList)
        io.kubernetes.client.proto.V1.SecretListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretList.class,
                io.kubernetes.client.proto.V1.SecretList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretList build() {
        io.kubernetes.client.proto.V1.SecretList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretList buildPartial() {
        io.kubernetes.client.proto.V1.SecretList result =
            new io.kubernetes.client.proto.V1.SecretList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretList) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretList other) {
        if (other == io.kubernetes.client.proto.V1.SecretList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SecretList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Secret> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Secret>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Secret,
              io.kubernetes.client.proto.V1.Secret.Builder,
              io.kubernetes.client.proto.V1.SecretOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Secret> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Secret getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Secret value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Secret.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Secret value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Secret value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Secret.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Secret.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Secret> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Secret.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.SecretOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.SecretOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Secret.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Secret.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Secret.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Secret.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Items is a list of secret objects.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Secret items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Secret.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Secret,
              io.kubernetes.client.proto.V1.Secret.Builder,
              io.kubernetes.client.proto.V1.SecretOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Secret,
                  io.kubernetes.client.proto.V1.Secret.Builder,
                  io.kubernetes.client.proto.V1.SecretOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretList)
    private static final io.kubernetes.client.proto.V1.SecretList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretList();
    }

    public static io.kubernetes.client.proto.V1.SecretList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretList> PARSER =
        new com.google.protobuf.AbstractParser<SecretList>() {
          @java.lang.Override
          public SecretList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretProjectionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretProjection)
      com.google.protobuf.MessageOrBuilder {

    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    boolean hasLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference();
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getLocalObjectReferenceOrBuilder();

    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPath getItems(int index);
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Specify whether the Secret or its key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or its key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * Adapts a secret into a projected volume.
   * The contents of the target Secret's Data field will be presented in a
   * projected volume as files using the keys in the Data field as the file names.
   * Note that this is identical to a secret volume source without the default
   * mode.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretProjection}
   */
  public static final class SecretProjection extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretProjection)
      SecretProjectionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretProjection.newBuilder() to construct.
    private SecretProjection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretProjection() {
      items_ = java.util.Collections.emptyList();
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretProjection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = localObjectReference_.toBuilder();
                }
                localObjectReference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(localObjectReference_);
                  localObjectReference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.KeyToPath.PARSER, extensionRegistry));
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000002;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecretProjection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretProjection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretProjection.class,
              io.kubernetes.client.proto.V1.SecretProjection.Builder.class);
    }

    private int bitField0_;
    public static final int LOCALOBJECTREFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_;
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public boolean hasLocalObjectReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }
    /** <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;</code> */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
        getLocalObjectReferenceOrBuilder() {
      return localObjectReference_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : localObjectReference_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_;
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    public static final int OPTIONAL_FIELD_NUMBER = 4;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or its key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or its key must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(4, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLocalObjectReference());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretProjection)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretProjection other =
          (io.kubernetes.client.proto.V1.SecretProjection) obj;

      boolean result = true;
      result = result && (hasLocalObjectReference() == other.hasLocalObjectReference());
      if (hasLocalObjectReference()) {
        result = result && getLocalObjectReference().equals(other.getLocalObjectReference());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLocalObjectReference()) {
        hash = (37 * hash) + LOCALOBJECTREFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getLocalObjectReference().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretProjection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretProjection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Adapts a secret into a projected volume.
     * The contents of the target Secret's Data field will be presented in a
     * projected volume as files using the keys in the Data field as the file names.
     * Note that this is identical to a secret volume source without the default
     * mode.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretProjection}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretProjection)
        io.kubernetes.client.proto.V1.SecretProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretProjection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretProjection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretProjection.class,
                io.kubernetes.client.proto.V1.SecretProjection.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretProjection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLocalObjectReferenceFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretProjection_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretProjection build() {
        io.kubernetes.client.proto.V1.SecretProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretProjection buildPartial() {
        io.kubernetes.client.proto.V1.SecretProjection result =
            new io.kubernetes.client.proto.V1.SecretProjection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (localObjectReferenceBuilder_ == null) {
          result.localObjectReference_ = localObjectReference_;
        } else {
          result.localObjectReference_ = localObjectReferenceBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretProjection) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretProjection) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretProjection other) {
        if (other == io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance())
          return this;
        if (other.hasLocalObjectReference()) {
          mergeLocalObjectReference(other.getLocalObjectReference());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretProjection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SecretProjection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LocalObjectReference localObjectReference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          localObjectReferenceBuilder_;
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public boolean hasLocalObjectReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        } else {
          return localObjectReferenceBuilder_.getMessage();
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          localObjectReference_ = value;
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder setLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = builderForValue.build();
          onChanged();
        } else {
          localObjectReferenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder mergeLocalObjectReference(
          io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (localObjectReferenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && localObjectReference_ != null
              && localObjectReference_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            localObjectReference_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(localObjectReference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            localObjectReference_ = value;
          }
          onChanged();
        } else {
          localObjectReferenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public Builder clearLocalObjectReference() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReference_ = null;
          onChanged();
        } else {
          localObjectReferenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          getLocalObjectReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLocalObjectReferenceFieldBuilder().getBuilder();
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getLocalObjectReferenceOrBuilder() {
        if (localObjectReferenceBuilder_ != null) {
          return localObjectReferenceBuilder_.getMessageOrBuilder();
        } else {
          return localObjectReference_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : localObjectReference_;
        }
      }
      /**
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference localObjectReference = 1;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getLocalObjectReferenceFieldBuilder() {
        if (localObjectReferenceBuilder_ == null) {
          localObjectReferenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getLocalObjectReference(), getParentForChildren(), isClean());
          localObjectReference_ = null;
        }
        return localObjectReferenceBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.KeyToPath> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.KeyToPath,
                  io.kubernetes.client.proto.V1.KeyToPath.Builder,
                  io.kubernetes.client.proto.V1.KeyToPathOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or its key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or its key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or its key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000004;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or its key must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretProjection)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretProjection)
    private static final io.kubernetes.client.proto.V1.SecretProjection DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretProjection();
    }

    public static io.kubernetes.client.proto.V1.SecretProjection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretProjection> PARSER =
        new com.google.protobuf.AbstractParser<SecretProjection>() {
          @java.lang.Override
          public SecretProjection parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretProjection(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretProjection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretProjection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretProjection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    boolean hasNamespace();
    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    java.lang.String getNamespace();
    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    com.google.protobuf.ByteString getNamespaceBytes();
  }
  /**
   *
   *
   * <pre>
   * SecretReference represents a Secret Reference. It has enough information to retrieve secret
   * in any namespace
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretReference}
   */
  public static final class SecretReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretReference)
      SecretReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretReference.newBuilder() to construct.
    private SecretReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretReference() {
      name_ = "";
      namespace_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                namespace_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecretReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretReference.class,
              io.kubernetes.client.proto.V1.SecretReference.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name is unique within a namespace to reference a secret resource.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAMESPACE_FIELD_NUMBER = 2;
    private volatile java.lang.Object namespace_;
    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public boolean hasNamespace() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public java.lang.String getNamespace() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          namespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Namespace defines the space within which the secret name must be unique.
     * +optional
     * </pre>
     *
     * <code>optional string namespace = 2;</code>
     */
    public com.google.protobuf.ByteString getNamespaceBytes() {
      java.lang.Object ref = namespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        namespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, namespace_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, namespace_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretReference other =
          (io.kubernetes.client.proto.V1.SecretReference) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasNamespace() == other.hasNamespace());
      if (hasNamespace()) {
        result = result && getNamespace().equals(other.getNamespace());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasNamespace()) {
        hash = (37 * hash) + NAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getNamespace().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SecretReference represents a Secret Reference. It has enough information to retrieve secret
     * in any namespace
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretReference)
        io.kubernetes.client.proto.V1.SecretReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretReference.class,
                io.kubernetes.client.proto.V1.SecretReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        namespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretReference build() {
        io.kubernetes.client.proto.V1.SecretReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretReference buildPartial() {
        io.kubernetes.client.proto.V1.SecretReference result =
            new io.kubernetes.client.proto.V1.SecretReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.namespace_ = namespace_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretReference) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretReference other) {
        if (other == io.kubernetes.client.proto.V1.SecretReference.getDefaultInstance())
          return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasNamespace()) {
          bitField0_ |= 0x00000002;
          namespace_ = other.namespace_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SecretReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is unique within a namespace to reference a secret resource.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object namespace_ = "";
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public boolean hasNamespace() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public java.lang.String getNamespace() {
        java.lang.Object ref = namespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            namespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public com.google.protobuf.ByteString getNamespaceBytes() {
        java.lang.Object ref = namespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          namespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder setNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        namespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder clearNamespace() {
        bitField0_ = (bitField0_ & ~0x00000002);
        namespace_ = getDefaultInstance().getNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Namespace defines the space within which the secret name must be unique.
       * +optional
       * </pre>
       *
       * <code>optional string namespace = 2;</code>
       */
      public Builder setNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        namespace_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretReference)
    private static final io.kubernetes.client.proto.V1.SecretReference DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretReference();
    }

    public static io.kubernetes.client.proto.V1.SecretReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretReference> PARSER =
        new com.google.protobuf.AbstractParser<SecretReference>() {
          @java.lang.Override
          public SecretReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecretVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecretVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    boolean hasSecretName();
    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    java.lang.String getSecretName();
    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    com.google.protobuf.ByteString getSecretNameBytes();

    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPath getItems(int index);
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    boolean hasDefaultMode();
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    int getDefaultMode();

    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean hasOptional();
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    boolean getOptional();
  }
  /**
   *
   *
   * <pre>
   * Adapts a Secret into a volume.
   * The contents of the target Secret's Data field will be presented in a volume
   * as files using the keys in the Data field as the file names.
   * Secret volumes support ownership management and SELinux relabeling.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecretVolumeSource}
   */
  public static final class SecretVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecretVolumeSource)
      SecretVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecretVolumeSource.newBuilder() to construct.
    private SecretVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecretVolumeSource() {
      secretName_ = "";
      items_ = java.util.Collections.emptyList();
      defaultMode_ = 0;
      optional_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecretVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                secretName_ = bs;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.KeyToPath.PARSER, extensionRegistry));
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000002;
                defaultMode_ = input.readInt32();
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000004;
                optional_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecretVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecretVolumeSource.class,
              io.kubernetes.client.proto.V1.SecretVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int SECRETNAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object secretName_;
    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public boolean hasSecretName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public java.lang.String getSecretName() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          secretName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of the secret in the pod's namespace to use.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional string secretName = 1;</code>
     */
    public com.google.protobuf.ByteString getSecretNameBytes() {
      java.lang.Object ref = secretName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        secretName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_;
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If unspecified, each key-value pair in the Data field of the referenced
     * Secret will be projected into the volume as a file whose name is the
     * key and content is the value. If specified, the listed keys will be
     * projected into the specified paths, and unlisted keys will not be
     * present. If a key is specified which is not present in the Secret,
     * the volume setup will error unless it is marked optional. Paths must be
     * relative and may not contain the '..' path or start with '..'.
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    public static final int DEFAULTMODE_FIELD_NUMBER = 3;
    private int defaultMode_;
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    public boolean hasDefaultMode() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional: mode bits to use on created files by default. Must be a
     * value between 0 and 0777. Defaults to 0644.
     * Directories within the path are not affected by this setting.
     * This might be in conflict with other options that affect the file
     * mode, like fsGroup, and the result can be other mode bits set.
     * +optional
     * </pre>
     *
     * <code>optional int32 defaultMode = 3;</code>
     */
    public int getDefaultMode() {
      return defaultMode_;
    }

    public static final int OPTIONAL_FIELD_NUMBER = 4;
    private boolean optional_;
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean hasOptional() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Specify whether the Secret or it's keys must be defined
     * +optional
     * </pre>
     *
     * <code>optional bool optional = 4;</code>
     */
    public boolean getOptional() {
      return optional_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, secretName_);
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(3, defaultMode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBool(4, optional_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, secretName_);
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, defaultMode_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, optional_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecretVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecretVolumeSource other =
          (io.kubernetes.client.proto.V1.SecretVolumeSource) obj;

      boolean result = true;
      result = result && (hasSecretName() == other.hasSecretName());
      if (hasSecretName()) {
        result = result && getSecretName().equals(other.getSecretName());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && (hasDefaultMode() == other.hasDefaultMode());
      if (hasDefaultMode()) {
        result = result && (getDefaultMode() == other.getDefaultMode());
      }
      result = result && (hasOptional() == other.hasOptional());
      if (hasOptional()) {
        result = result && (getOptional() == other.getOptional());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSecretName()) {
        hash = (37 * hash) + SECRETNAME_FIELD_NUMBER;
        hash = (53 * hash) + getSecretName().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      if (hasDefaultMode()) {
        hash = (37 * hash) + DEFAULTMODE_FIELD_NUMBER;
        hash = (53 * hash) + getDefaultMode();
      }
      if (hasOptional()) {
        hash = (37 * hash) + OPTIONAL_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getOptional());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecretVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Adapts a Secret into a volume.
     * The contents of the target Secret's Data field will be presented in a volume
     * as files using the keys in the Data field as the file names.
     * Secret volumes support ownership management and SELinux relabeling.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecretVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecretVolumeSource)
        io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecretVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecretVolumeSource.class,
                io.kubernetes.client.proto.V1.SecretVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecretVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        secretName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        defaultMode_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        optional_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretVolumeSource build() {
        io.kubernetes.client.proto.V1.SecretVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecretVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.SecretVolumeSource result =
            new io.kubernetes.client.proto.V1.SecretVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.secretName_ = secretName_;
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.defaultMode_ = defaultMode_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000004;
        }
        result.optional_ = optional_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecretVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecretVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecretVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance())
          return this;
        if (other.hasSecretName()) {
          bitField0_ |= 0x00000001;
          secretName_ = other.secretName_;
          onChanged();
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        if (other.hasDefaultMode()) {
          setDefaultMode(other.getDefaultMode());
        }
        if (other.hasOptional()) {
          setOptional(other.getOptional());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecretVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.SecretVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object secretName_ = "";
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public boolean hasSecretName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public java.lang.String getSecretName() {
        java.lang.Object ref = secretName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            secretName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public com.google.protobuf.ByteString getSecretNameBytes() {
        java.lang.Object ref = secretName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          secretName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder clearSecretName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        secretName_ = getDefaultInstance().getSecretName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of the secret in the pod's namespace to use.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional string secretName = 1;</code>
       */
      public Builder setSecretNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        secretName_ = value;
        onChanged();
        return this;
      }

      private java.util.List<io.kubernetes.client.proto.V1.KeyToPath> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.KeyToPath>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.KeyToPath value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.KeyToPath.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.KeyToPath> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPathOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.KeyToPath.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.KeyToPath.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * If unspecified, each key-value pair in the Data field of the referenced
       * Secret will be projected into the volume as a file whose name is the
       * key and content is the value. If specified, the listed keys will be
       * projected into the specified paths, and unlisted keys will not be
       * present. If a key is specified which is not present in the Secret,
       * the volume setup will error unless it is marked optional. Paths must be
       * relative and may not contain the '..' path or start with '..'.
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.KeyToPath items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.KeyToPath.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.KeyToPath,
              io.kubernetes.client.proto.V1.KeyToPath.Builder,
              io.kubernetes.client.proto.V1.KeyToPathOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.KeyToPath,
                  io.kubernetes.client.proto.V1.KeyToPath.Builder,
                  io.kubernetes.client.proto.V1.KeyToPathOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      private int defaultMode_;
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public boolean hasDefaultMode() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public int getDefaultMode() {
        return defaultMode_;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public Builder setDefaultMode(int value) {
        bitField0_ |= 0x00000004;
        defaultMode_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: mode bits to use on created files by default. Must be a
       * value between 0 and 0777. Defaults to 0644.
       * Directories within the path are not affected by this setting.
       * This might be in conflict with other options that affect the file
       * mode, like fsGroup, and the result can be other mode bits set.
       * +optional
       * </pre>
       *
       * <code>optional int32 defaultMode = 3;</code>
       */
      public Builder clearDefaultMode() {
        bitField0_ = (bitField0_ & ~0x00000004);
        defaultMode_ = 0;
        onChanged();
        return this;
      }

      private boolean optional_;
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean hasOptional() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public boolean getOptional() {
        return optional_;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder setOptional(boolean value) {
        bitField0_ |= 0x00000008;
        optional_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Specify whether the Secret or it's keys must be defined
       * +optional
       * </pre>
       *
       * <code>optional bool optional = 4;</code>
       */
      public Builder clearOptional() {
        bitField0_ = (bitField0_ & ~0x00000008);
        optional_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecretVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecretVolumeSource)
    private static final io.kubernetes.client.proto.V1.SecretVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecretVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.SecretVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecretVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<SecretVolumeSource>() {
          @java.lang.Override
          public SecretVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecretVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecretVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecretVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecretVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SecurityContextOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SecurityContext)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    boolean hasCapabilities();
    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    io.kubernetes.client.proto.V1.Capabilities getCapabilities();
    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    io.kubernetes.client.proto.V1.CapabilitiesOrBuilder getCapabilitiesOrBuilder();

    /**
     *
     *
     * <pre>
     * Run container in privileged mode.
     * Processes in privileged containers are essentially equivalent to root on the host.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool privileged = 2;</code>
     */
    boolean hasPrivileged();
    /**
     *
     *
     * <pre>
     * Run container in privileged mode.
     * Processes in privileged containers are essentially equivalent to root on the host.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool privileged = 2;</code>
     */
    boolean getPrivileged();

    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    boolean hasSeLinuxOptions();
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions();
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder();

    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 4;</code>
     */
    boolean hasRunAsUser();
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 4;</code>
     */
    long getRunAsUser();

    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 8;</code>
     */
    boolean hasRunAsGroup();
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 8;</code>
     */
    long getRunAsGroup();

    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 5;</code>
     */
    boolean hasRunAsNonRoot();
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 5;</code>
     */
    boolean getRunAsNonRoot();

    /**
     *
     *
     * <pre>
     * Whether this container has a read-only root filesystem.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnlyRootFilesystem = 6;</code>
     */
    boolean hasReadOnlyRootFilesystem();
    /**
     *
     *
     * <pre>
     * Whether this container has a read-only root filesystem.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnlyRootFilesystem = 6;</code>
     */
    boolean getReadOnlyRootFilesystem();

    /**
     *
     *
     * <pre>
     * AllowPrivilegeEscalation controls whether a process can gain more
     * privileges than its parent process. This bool directly controls if
     * the no_new_privs flag will be set on the container process.
     * AllowPrivilegeEscalation is true always when the container is:
     * 1) run as Privileged
     * 2) has CAP_SYS_ADMIN
     * +optional
     * </pre>
     *
     * <code>optional bool allowPrivilegeEscalation = 7;</code>
     */
    boolean hasAllowPrivilegeEscalation();
    /**
     *
     *
     * <pre>
     * AllowPrivilegeEscalation controls whether a process can gain more
     * privileges than its parent process. This bool directly controls if
     * the no_new_privs flag will be set on the container process.
     * AllowPrivilegeEscalation is true always when the container is:
     * 1) run as Privileged
     * 2) has CAP_SYS_ADMIN
     * +optional
     * </pre>
     *
     * <code>optional bool allowPrivilegeEscalation = 7;</code>
     */
    boolean getAllowPrivilegeEscalation();

    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    boolean hasProcMount();
    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    java.lang.String getProcMount();
    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    com.google.protobuf.ByteString getProcMountBytes();
  }
  /**
   *
   *
   * <pre>
   * SecurityContext holds security configuration that will be applied to a container.
   * Some fields are present in both SecurityContext and PodSecurityContext.  When both
   * are set, the values in SecurityContext take precedence.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SecurityContext}
   */
  public static final class SecurityContext extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SecurityContext)
      SecurityContextOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SecurityContext.newBuilder() to construct.
    private SecurityContext(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SecurityContext() {
      privileged_ = false;
      runAsUser_ = 0L;
      runAsGroup_ = 0L;
      runAsNonRoot_ = false;
      readOnlyRootFilesystem_ = false;
      allowPrivilegeEscalation_ = false;
      procMount_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SecurityContext(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.Capabilities.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = capabilities_.toBuilder();
                }
                capabilities_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Capabilities.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(capabilities_);
                  capabilities_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                privileged_ = input.readBool();
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.SELinuxOptions.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = seLinuxOptions_.toBuilder();
                }
                seLinuxOptions_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SELinuxOptions.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(seLinuxOptions_);
                  seLinuxOptions_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                runAsUser_ = input.readInt64();
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000020;
                runAsNonRoot_ = input.readBool();
                break;
              }
            case 48:
              {
                bitField0_ |= 0x00000040;
                readOnlyRootFilesystem_ = input.readBool();
                break;
              }
            case 56:
              {
                bitField0_ |= 0x00000080;
                allowPrivilegeEscalation_ = input.readBool();
                break;
              }
            case 64:
              {
                bitField0_ |= 0x00000010;
                runAsGroup_ = input.readInt64();
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000100;
                procMount_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SecurityContext_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SecurityContext_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SecurityContext.class,
              io.kubernetes.client.proto.V1.SecurityContext.Builder.class);
    }

    private int bitField0_;
    public static final int CAPABILITIES_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.Capabilities capabilities_;
    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    public boolean hasCapabilities() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    public io.kubernetes.client.proto.V1.Capabilities getCapabilities() {
      return capabilities_ == null
          ? io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()
          : capabilities_;
    }
    /**
     *
     *
     * <pre>
     * The capabilities to add/drop when running containers.
     * Defaults to the default set of capabilities granted by the container runtime.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
     */
    public io.kubernetes.client.proto.V1.CapabilitiesOrBuilder getCapabilitiesOrBuilder() {
      return capabilities_ == null
          ? io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()
          : capabilities_;
    }

    public static final int PRIVILEGED_FIELD_NUMBER = 2;
    private boolean privileged_;
    /**
     *
     *
     * <pre>
     * Run container in privileged mode.
     * Processes in privileged containers are essentially equivalent to root on the host.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool privileged = 2;</code>
     */
    public boolean hasPrivileged() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Run container in privileged mode.
     * Processes in privileged containers are essentially equivalent to root on the host.
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool privileged = 2;</code>
     */
    public boolean getPrivileged() {
      return privileged_;
    }

    public static final int SELINUXOPTIONS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.SELinuxOptions seLinuxOptions_;
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    public boolean hasSeLinuxOptions() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions() {
      return seLinuxOptions_ == null
          ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
          : seLinuxOptions_;
    }
    /**
     *
     *
     * <pre>
     * The SELinux context to be applied to the container.
     * If unspecified, the container runtime will allocate a random SELinux context for each
     * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
     */
    public io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder() {
      return seLinuxOptions_ == null
          ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
          : seLinuxOptions_;
    }

    public static final int RUNASUSER_FIELD_NUMBER = 4;
    private long runAsUser_;
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 4;</code>
     */
    public boolean hasRunAsUser() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * The UID to run the entrypoint of the container process.
     * Defaults to user specified in image metadata if unspecified.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsUser = 4;</code>
     */
    public long getRunAsUser() {
      return runAsUser_;
    }

    public static final int RUNASGROUP_FIELD_NUMBER = 8;
    private long runAsGroup_;
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 8;</code>
     */
    public boolean hasRunAsGroup() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The GID to run the entrypoint of the container process.
     * Uses runtime default if unset.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional int64 runAsGroup = 8;</code>
     */
    public long getRunAsGroup() {
      return runAsGroup_;
    }

    public static final int RUNASNONROOT_FIELD_NUMBER = 5;
    private boolean runAsNonRoot_;
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 5;</code>
     */
    public boolean hasRunAsNonRoot() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Indicates that the container must run as a non-root user.
     * If true, the Kubelet will validate the image at runtime to ensure that it
     * does not run as UID 0 (root) and fail to start the container if it does.
     * If unset or false, no such validation will be performed.
     * May also be set in PodSecurityContext.  If set in both SecurityContext and
     * PodSecurityContext, the value specified in SecurityContext takes precedence.
     * +optional
     * </pre>
     *
     * <code>optional bool runAsNonRoot = 5;</code>
     */
    public boolean getRunAsNonRoot() {
      return runAsNonRoot_;
    }

    public static final int READONLYROOTFILESYSTEM_FIELD_NUMBER = 6;
    private boolean readOnlyRootFilesystem_;
    /**
     *
     *
     * <pre>
     * Whether this container has a read-only root filesystem.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnlyRootFilesystem = 6;</code>
     */
    public boolean hasReadOnlyRootFilesystem() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * Whether this container has a read-only root filesystem.
     * Default is false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnlyRootFilesystem = 6;</code>
     */
    public boolean getReadOnlyRootFilesystem() {
      return readOnlyRootFilesystem_;
    }

    public static final int ALLOWPRIVILEGEESCALATION_FIELD_NUMBER = 7;
    private boolean allowPrivilegeEscalation_;
    /**
     *
     *
     * <pre>
     * AllowPrivilegeEscalation controls whether a process can gain more
     * privileges than its parent process. This bool directly controls if
     * the no_new_privs flag will be set on the container process.
     * AllowPrivilegeEscalation is true always when the container is:
     * 1) run as Privileged
     * 2) has CAP_SYS_ADMIN
     * +optional
     * </pre>
     *
     * <code>optional bool allowPrivilegeEscalation = 7;</code>
     */
    public boolean hasAllowPrivilegeEscalation() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * AllowPrivilegeEscalation controls whether a process can gain more
     * privileges than its parent process. This bool directly controls if
     * the no_new_privs flag will be set on the container process.
     * AllowPrivilegeEscalation is true always when the container is:
     * 1) run as Privileged
     * 2) has CAP_SYS_ADMIN
     * +optional
     * </pre>
     *
     * <code>optional bool allowPrivilegeEscalation = 7;</code>
     */
    public boolean getAllowPrivilegeEscalation() {
      return allowPrivilegeEscalation_;
    }

    public static final int PROCMOUNT_FIELD_NUMBER = 9;
    private volatile java.lang.Object procMount_;
    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    public boolean hasProcMount() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    public java.lang.String getProcMount() {
      java.lang.Object ref = procMount_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          procMount_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * procMount denotes the type of proc mount to use for the containers.
     * The default is DefaultProcMount which uses the container runtime defaults for
     * readonly paths and masked paths.
     * This requires the ProcMountType feature flag to be enabled.
     * +optional
     * </pre>
     *
     * <code>optional string procMount = 9;</code>
     */
    public com.google.protobuf.ByteString getProcMountBytes() {
      java.lang.Object ref = procMount_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        procMount_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getCapabilities());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, privileged_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getSeLinuxOptions());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt64(4, runAsUser_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBool(5, runAsNonRoot_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeBool(6, readOnlyRootFilesystem_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(7, allowPrivilegeEscalation_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(8, runAsGroup_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 9, procMount_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getCapabilities());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, privileged_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getSeLinuxOptions());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(4, runAsUser_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(5, runAsNonRoot_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(6, readOnlyRootFilesystem_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(7, allowPrivilegeEscalation_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(8, runAsGroup_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(9, procMount_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SecurityContext)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SecurityContext other =
          (io.kubernetes.client.proto.V1.SecurityContext) obj;

      boolean result = true;
      result = result && (hasCapabilities() == other.hasCapabilities());
      if (hasCapabilities()) {
        result = result && getCapabilities().equals(other.getCapabilities());
      }
      result = result && (hasPrivileged() == other.hasPrivileged());
      if (hasPrivileged()) {
        result = result && (getPrivileged() == other.getPrivileged());
      }
      result = result && (hasSeLinuxOptions() == other.hasSeLinuxOptions());
      if (hasSeLinuxOptions()) {
        result = result && getSeLinuxOptions().equals(other.getSeLinuxOptions());
      }
      result = result && (hasRunAsUser() == other.hasRunAsUser());
      if (hasRunAsUser()) {
        result = result && (getRunAsUser() == other.getRunAsUser());
      }
      result = result && (hasRunAsGroup() == other.hasRunAsGroup());
      if (hasRunAsGroup()) {
        result = result && (getRunAsGroup() == other.getRunAsGroup());
      }
      result = result && (hasRunAsNonRoot() == other.hasRunAsNonRoot());
      if (hasRunAsNonRoot()) {
        result = result && (getRunAsNonRoot() == other.getRunAsNonRoot());
      }
      result = result && (hasReadOnlyRootFilesystem() == other.hasReadOnlyRootFilesystem());
      if (hasReadOnlyRootFilesystem()) {
        result = result && (getReadOnlyRootFilesystem() == other.getReadOnlyRootFilesystem());
      }
      result = result && (hasAllowPrivilegeEscalation() == other.hasAllowPrivilegeEscalation());
      if (hasAllowPrivilegeEscalation()) {
        result = result && (getAllowPrivilegeEscalation() == other.getAllowPrivilegeEscalation());
      }
      result = result && (hasProcMount() == other.hasProcMount());
      if (hasProcMount()) {
        result = result && getProcMount().equals(other.getProcMount());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasCapabilities()) {
        hash = (37 * hash) + CAPABILITIES_FIELD_NUMBER;
        hash = (53 * hash) + getCapabilities().hashCode();
      }
      if (hasPrivileged()) {
        hash = (37 * hash) + PRIVILEGED_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPrivileged());
      }
      if (hasSeLinuxOptions()) {
        hash = (37 * hash) + SELINUXOPTIONS_FIELD_NUMBER;
        hash = (53 * hash) + getSeLinuxOptions().hashCode();
      }
      if (hasRunAsUser()) {
        hash = (37 * hash) + RUNASUSER_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRunAsUser());
      }
      if (hasRunAsGroup()) {
        hash = (37 * hash) + RUNASGROUP_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getRunAsGroup());
      }
      if (hasRunAsNonRoot()) {
        hash = (37 * hash) + RUNASNONROOT_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getRunAsNonRoot());
      }
      if (hasReadOnlyRootFilesystem()) {
        hash = (37 * hash) + READONLYROOTFILESYSTEM_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnlyRootFilesystem());
      }
      if (hasAllowPrivilegeEscalation()) {
        hash = (37 * hash) + ALLOWPRIVILEGEESCALATION_FIELD_NUMBER;
        hash =
            (53 * hash) + com.google.protobuf.Internal.hashBoolean(getAllowPrivilegeEscalation());
      }
      if (hasProcMount()) {
        hash = (37 * hash) + PROCMOUNT_FIELD_NUMBER;
        hash = (53 * hash) + getProcMount().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SecurityContext parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SecurityContext prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SecurityContext holds security configuration that will be applied to a container.
     * Some fields are present in both SecurityContext and PodSecurityContext.  When both
     * are set, the values in SecurityContext take precedence.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SecurityContext}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SecurityContext)
        io.kubernetes.client.proto.V1.SecurityContextOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecurityContext_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SecurityContext_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SecurityContext.class,
                io.kubernetes.client.proto.V1.SecurityContext.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SecurityContext.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getCapabilitiesFieldBuilder();
          getSeLinuxOptionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (capabilitiesBuilder_ == null) {
          capabilities_ = null;
        } else {
          capabilitiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        privileged_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = null;
        } else {
          seLinuxOptionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        runAsUser_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000008);
        runAsGroup_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        runAsNonRoot_ = false;
        bitField0_ = (bitField0_ & ~0x00000020);
        readOnlyRootFilesystem_ = false;
        bitField0_ = (bitField0_ & ~0x00000040);
        allowPrivilegeEscalation_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        procMount_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SecurityContext_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecurityContext getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecurityContext build() {
        io.kubernetes.client.proto.V1.SecurityContext result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SecurityContext buildPartial() {
        io.kubernetes.client.proto.V1.SecurityContext result =
            new io.kubernetes.client.proto.V1.SecurityContext(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (capabilitiesBuilder_ == null) {
          result.capabilities_ = capabilities_;
        } else {
          result.capabilities_ = capabilitiesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.privileged_ = privileged_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (seLinuxOptionsBuilder_ == null) {
          result.seLinuxOptions_ = seLinuxOptions_;
        } else {
          result.seLinuxOptions_ = seLinuxOptionsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.runAsUser_ = runAsUser_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.runAsGroup_ = runAsGroup_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.runAsNonRoot_ = runAsNonRoot_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.readOnlyRootFilesystem_ = readOnlyRootFilesystem_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.allowPrivilegeEscalation_ = allowPrivilegeEscalation_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.procMount_ = procMount_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SecurityContext) {
          return mergeFrom((io.kubernetes.client.proto.V1.SecurityContext) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SecurityContext other) {
        if (other == io.kubernetes.client.proto.V1.SecurityContext.getDefaultInstance())
          return this;
        if (other.hasCapabilities()) {
          mergeCapabilities(other.getCapabilities());
        }
        if (other.hasPrivileged()) {
          setPrivileged(other.getPrivileged());
        }
        if (other.hasSeLinuxOptions()) {
          mergeSeLinuxOptions(other.getSeLinuxOptions());
        }
        if (other.hasRunAsUser()) {
          setRunAsUser(other.getRunAsUser());
        }
        if (other.hasRunAsGroup()) {
          setRunAsGroup(other.getRunAsGroup());
        }
        if (other.hasRunAsNonRoot()) {
          setRunAsNonRoot(other.getRunAsNonRoot());
        }
        if (other.hasReadOnlyRootFilesystem()) {
          setReadOnlyRootFilesystem(other.getReadOnlyRootFilesystem());
        }
        if (other.hasAllowPrivilegeEscalation()) {
          setAllowPrivilegeEscalation(other.getAllowPrivilegeEscalation());
        }
        if (other.hasProcMount()) {
          bitField0_ |= 0x00000100;
          procMount_ = other.procMount_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SecurityContext parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.SecurityContext) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.Capabilities capabilities_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Capabilities,
              io.kubernetes.client.proto.V1.Capabilities.Builder,
              io.kubernetes.client.proto.V1.CapabilitiesOrBuilder>
          capabilitiesBuilder_;
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public boolean hasCapabilities() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Capabilities getCapabilities() {
        if (capabilitiesBuilder_ == null) {
          return capabilities_ == null
              ? io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()
              : capabilities_;
        } else {
          return capabilitiesBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public Builder setCapabilities(io.kubernetes.client.proto.V1.Capabilities value) {
        if (capabilitiesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          capabilities_ = value;
          onChanged();
        } else {
          capabilitiesBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public Builder setCapabilities(
          io.kubernetes.client.proto.V1.Capabilities.Builder builderForValue) {
        if (capabilitiesBuilder_ == null) {
          capabilities_ = builderForValue.build();
          onChanged();
        } else {
          capabilitiesBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public Builder mergeCapabilities(io.kubernetes.client.proto.V1.Capabilities value) {
        if (capabilitiesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && capabilities_ != null
              && capabilities_ != io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()) {
            capabilities_ =
                io.kubernetes.client.proto.V1.Capabilities.newBuilder(capabilities_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            capabilities_ = value;
          }
          onChanged();
        } else {
          capabilitiesBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public Builder clearCapabilities() {
        if (capabilitiesBuilder_ == null) {
          capabilities_ = null;
          onChanged();
        } else {
          capabilitiesBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public io.kubernetes.client.proto.V1.Capabilities.Builder getCapabilitiesBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getCapabilitiesFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      public io.kubernetes.client.proto.V1.CapabilitiesOrBuilder getCapabilitiesOrBuilder() {
        if (capabilitiesBuilder_ != null) {
          return capabilitiesBuilder_.getMessageOrBuilder();
        } else {
          return capabilities_ == null
              ? io.kubernetes.client.proto.V1.Capabilities.getDefaultInstance()
              : capabilities_;
        }
      }
      /**
       *
       *
       * <pre>
       * The capabilities to add/drop when running containers.
       * Defaults to the default set of capabilities granted by the container runtime.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.Capabilities capabilities = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.Capabilities,
              io.kubernetes.client.proto.V1.Capabilities.Builder,
              io.kubernetes.client.proto.V1.CapabilitiesOrBuilder>
          getCapabilitiesFieldBuilder() {
        if (capabilitiesBuilder_ == null) {
          capabilitiesBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Capabilities,
                  io.kubernetes.client.proto.V1.Capabilities.Builder,
                  io.kubernetes.client.proto.V1.CapabilitiesOrBuilder>(
                  getCapabilities(), getParentForChildren(), isClean());
          capabilities_ = null;
        }
        return capabilitiesBuilder_;
      }

      private boolean privileged_;
      /**
       *
       *
       * <pre>
       * Run container in privileged mode.
       * Processes in privileged containers are essentially equivalent to root on the host.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool privileged = 2;</code>
       */
      public boolean hasPrivileged() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Run container in privileged mode.
       * Processes in privileged containers are essentially equivalent to root on the host.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool privileged = 2;</code>
       */
      public boolean getPrivileged() {
        return privileged_;
      }
      /**
       *
       *
       * <pre>
       * Run container in privileged mode.
       * Processes in privileged containers are essentially equivalent to root on the host.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool privileged = 2;</code>
       */
      public Builder setPrivileged(boolean value) {
        bitField0_ |= 0x00000002;
        privileged_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Run container in privileged mode.
       * Processes in privileged containers are essentially equivalent to root on the host.
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool privileged = 2;</code>
       */
      public Builder clearPrivileged() {
        bitField0_ = (bitField0_ & ~0x00000002);
        privileged_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SELinuxOptions seLinuxOptions_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SELinuxOptions,
              io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
              io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>
          seLinuxOptionsBuilder_;
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public boolean hasSeLinuxOptions() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptions getSeLinuxOptions() {
        if (seLinuxOptionsBuilder_ == null) {
          return seLinuxOptions_ == null
              ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
              : seLinuxOptions_;
        } else {
          return seLinuxOptionsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public Builder setSeLinuxOptions(io.kubernetes.client.proto.V1.SELinuxOptions value) {
        if (seLinuxOptionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          seLinuxOptions_ = value;
          onChanged();
        } else {
          seLinuxOptionsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public Builder setSeLinuxOptions(
          io.kubernetes.client.proto.V1.SELinuxOptions.Builder builderForValue) {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = builderForValue.build();
          onChanged();
        } else {
          seLinuxOptionsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public Builder mergeSeLinuxOptions(io.kubernetes.client.proto.V1.SELinuxOptions value) {
        if (seLinuxOptionsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && seLinuxOptions_ != null
              && seLinuxOptions_
                  != io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()) {
            seLinuxOptions_ =
                io.kubernetes.client.proto.V1.SELinuxOptions.newBuilder(seLinuxOptions_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            seLinuxOptions_ = value;
          }
          onChanged();
        } else {
          seLinuxOptionsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public Builder clearSeLinuxOptions() {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptions_ = null;
          onChanged();
        } else {
          seLinuxOptionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptions.Builder getSeLinuxOptionsBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getSeLinuxOptionsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      public io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder getSeLinuxOptionsOrBuilder() {
        if (seLinuxOptionsBuilder_ != null) {
          return seLinuxOptionsBuilder_.getMessageOrBuilder();
        } else {
          return seLinuxOptions_ == null
              ? io.kubernetes.client.proto.V1.SELinuxOptions.getDefaultInstance()
              : seLinuxOptions_;
        }
      }
      /**
       *
       *
       * <pre>
       * The SELinux context to be applied to the container.
       * If unspecified, the container runtime will allocate a random SELinux context for each
       * container.  May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SELinuxOptions seLinuxOptions = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SELinuxOptions,
              io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
              io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>
          getSeLinuxOptionsFieldBuilder() {
        if (seLinuxOptionsBuilder_ == null) {
          seLinuxOptionsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SELinuxOptions,
                  io.kubernetes.client.proto.V1.SELinuxOptions.Builder,
                  io.kubernetes.client.proto.V1.SELinuxOptionsOrBuilder>(
                  getSeLinuxOptions(), getParentForChildren(), isClean());
          seLinuxOptions_ = null;
        }
        return seLinuxOptionsBuilder_;
      }

      private long runAsUser_;
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 4;</code>
       */
      public boolean hasRunAsUser() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 4;</code>
       */
      public long getRunAsUser() {
        return runAsUser_;
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 4;</code>
       */
      public Builder setRunAsUser(long value) {
        bitField0_ |= 0x00000008;
        runAsUser_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The UID to run the entrypoint of the container process.
       * Defaults to user specified in image metadata if unspecified.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsUser = 4;</code>
       */
      public Builder clearRunAsUser() {
        bitField0_ = (bitField0_ & ~0x00000008);
        runAsUser_ = 0L;
        onChanged();
        return this;
      }

      private long runAsGroup_;
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 8;</code>
       */
      public boolean hasRunAsGroup() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 8;</code>
       */
      public long getRunAsGroup() {
        return runAsGroup_;
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 8;</code>
       */
      public Builder setRunAsGroup(long value) {
        bitField0_ |= 0x00000010;
        runAsGroup_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The GID to run the entrypoint of the container process.
       * Uses runtime default if unset.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional int64 runAsGroup = 8;</code>
       */
      public Builder clearRunAsGroup() {
        bitField0_ = (bitField0_ & ~0x00000010);
        runAsGroup_ = 0L;
        onChanged();
        return this;
      }

      private boolean runAsNonRoot_;
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 5;</code>
       */
      public boolean hasRunAsNonRoot() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 5;</code>
       */
      public boolean getRunAsNonRoot() {
        return runAsNonRoot_;
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 5;</code>
       */
      public Builder setRunAsNonRoot(boolean value) {
        bitField0_ |= 0x00000020;
        runAsNonRoot_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Indicates that the container must run as a non-root user.
       * If true, the Kubelet will validate the image at runtime to ensure that it
       * does not run as UID 0 (root) and fail to start the container if it does.
       * If unset or false, no such validation will be performed.
       * May also be set in PodSecurityContext.  If set in both SecurityContext and
       * PodSecurityContext, the value specified in SecurityContext takes precedence.
       * +optional
       * </pre>
       *
       * <code>optional bool runAsNonRoot = 5;</code>
       */
      public Builder clearRunAsNonRoot() {
        bitField0_ = (bitField0_ & ~0x00000020);
        runAsNonRoot_ = false;
        onChanged();
        return this;
      }

      private boolean readOnlyRootFilesystem_;
      /**
       *
       *
       * <pre>
       * Whether this container has a read-only root filesystem.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnlyRootFilesystem = 6;</code>
       */
      public boolean hasReadOnlyRootFilesystem() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Whether this container has a read-only root filesystem.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnlyRootFilesystem = 6;</code>
       */
      public boolean getReadOnlyRootFilesystem() {
        return readOnlyRootFilesystem_;
      }
      /**
       *
       *
       * <pre>
       * Whether this container has a read-only root filesystem.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnlyRootFilesystem = 6;</code>
       */
      public Builder setReadOnlyRootFilesystem(boolean value) {
        bitField0_ |= 0x00000040;
        readOnlyRootFilesystem_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Whether this container has a read-only root filesystem.
       * Default is false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnlyRootFilesystem = 6;</code>
       */
      public Builder clearReadOnlyRootFilesystem() {
        bitField0_ = (bitField0_ & ~0x00000040);
        readOnlyRootFilesystem_ = false;
        onChanged();
        return this;
      }

      private boolean allowPrivilegeEscalation_;
      /**
       *
       *
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than its parent process. This bool directly controls if
       * the no_new_privs flag will be set on the container process.
       * AllowPrivilegeEscalation is true always when the container is:
       * 1) run as Privileged
       * 2) has CAP_SYS_ADMIN
       * +optional
       * </pre>
       *
       * <code>optional bool allowPrivilegeEscalation = 7;</code>
       */
      public boolean hasAllowPrivilegeEscalation() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than its parent process. This bool directly controls if
       * the no_new_privs flag will be set on the container process.
       * AllowPrivilegeEscalation is true always when the container is:
       * 1) run as Privileged
       * 2) has CAP_SYS_ADMIN
       * +optional
       * </pre>
       *
       * <code>optional bool allowPrivilegeEscalation = 7;</code>
       */
      public boolean getAllowPrivilegeEscalation() {
        return allowPrivilegeEscalation_;
      }
      /**
       *
       *
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than its parent process. This bool directly controls if
       * the no_new_privs flag will be set on the container process.
       * AllowPrivilegeEscalation is true always when the container is:
       * 1) run as Privileged
       * 2) has CAP_SYS_ADMIN
       * +optional
       * </pre>
       *
       * <code>optional bool allowPrivilegeEscalation = 7;</code>
       */
      public Builder setAllowPrivilegeEscalation(boolean value) {
        bitField0_ |= 0x00000080;
        allowPrivilegeEscalation_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AllowPrivilegeEscalation controls whether a process can gain more
       * privileges than its parent process. This bool directly controls if
       * the no_new_privs flag will be set on the container process.
       * AllowPrivilegeEscalation is true always when the container is:
       * 1) run as Privileged
       * 2) has CAP_SYS_ADMIN
       * +optional
       * </pre>
       *
       * <code>optional bool allowPrivilegeEscalation = 7;</code>
       */
      public Builder clearAllowPrivilegeEscalation() {
        bitField0_ = (bitField0_ & ~0x00000080);
        allowPrivilegeEscalation_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object procMount_ = "";
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public boolean hasProcMount() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public java.lang.String getProcMount() {
        java.lang.Object ref = procMount_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            procMount_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public com.google.protobuf.ByteString getProcMountBytes() {
        java.lang.Object ref = procMount_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          procMount_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public Builder setProcMount(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        procMount_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public Builder clearProcMount() {
        bitField0_ = (bitField0_ & ~0x00000100);
        procMount_ = getDefaultInstance().getProcMount();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * procMount denotes the type of proc mount to use for the containers.
       * The default is DefaultProcMount which uses the container runtime defaults for
       * readonly paths and masked paths.
       * This requires the ProcMountType feature flag to be enabled.
       * +optional
       * </pre>
       *
       * <code>optional string procMount = 9;</code>
       */
      public Builder setProcMountBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        procMount_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SecurityContext)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SecurityContext)
    private static final io.kubernetes.client.proto.V1.SecurityContext DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SecurityContext();
    }

    public static io.kubernetes.client.proto.V1.SecurityContext getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SecurityContext> PARSER =
        new com.google.protobuf.AbstractParser<SecurityContext>() {
          @java.lang.Override
          public SecurityContext parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SecurityContext(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SecurityContext> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SecurityContext> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SecurityContext getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SerializedReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SerializedReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    boolean hasReference();
    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getReference();
    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getReferenceOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * SerializedReference is a reference to serialized object.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SerializedReference}
   */
  public static final class SerializedReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SerializedReference)
      SerializedReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SerializedReference.newBuilder() to construct.
    private SerializedReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SerializedReference() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SerializedReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = reference_.toBuilder();
                }
                reference_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(reference_);
                  reference_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SerializedReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SerializedReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SerializedReference.class,
              io.kubernetes.client.proto.V1.SerializedReference.Builder.class);
    }

    private int bitField0_;
    public static final int REFERENCE_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.ObjectReference reference_;
    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    public boolean hasReference() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getReference() {
      return reference_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : reference_;
    }
    /**
     *
     *
     * <pre>
     * The reference to an object in the system.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getReferenceOrBuilder() {
      return reference_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : reference_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getReference());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getReference());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SerializedReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SerializedReference other =
          (io.kubernetes.client.proto.V1.SerializedReference) obj;

      boolean result = true;
      result = result && (hasReference() == other.hasReference());
      if (hasReference()) {
        result = result && getReference().equals(other.getReference());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasReference()) {
        hash = (37 * hash) + REFERENCE_FIELD_NUMBER;
        hash = (53 * hash) + getReference().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SerializedReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.SerializedReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SerializedReference is a reference to serialized object.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SerializedReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SerializedReference)
        io.kubernetes.client.proto.V1.SerializedReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SerializedReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SerializedReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SerializedReference.class,
                io.kubernetes.client.proto.V1.SerializedReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SerializedReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getReferenceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (referenceBuilder_ == null) {
          reference_ = null;
        } else {
          referenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SerializedReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SerializedReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SerializedReference.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SerializedReference build() {
        io.kubernetes.client.proto.V1.SerializedReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SerializedReference buildPartial() {
        io.kubernetes.client.proto.V1.SerializedReference result =
            new io.kubernetes.client.proto.V1.SerializedReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (referenceBuilder_ == null) {
          result.reference_ = reference_;
        } else {
          result.reference_ = referenceBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SerializedReference) {
          return mergeFrom((io.kubernetes.client.proto.V1.SerializedReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SerializedReference other) {
        if (other == io.kubernetes.client.proto.V1.SerializedReference.getDefaultInstance())
          return this;
        if (other.hasReference()) {
          mergeReference(other.getReference());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SerializedReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.SerializedReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ObjectReference reference_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          referenceBuilder_;
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public boolean hasReference() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getReference() {
        if (referenceBuilder_ == null) {
          return reference_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : reference_;
        } else {
          return referenceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public Builder setReference(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (referenceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          reference_ = value;
          onChanged();
        } else {
          referenceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public Builder setReference(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (referenceBuilder_ == null) {
          reference_ = builderForValue.build();
          onChanged();
        } else {
          referenceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public Builder mergeReference(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (referenceBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && reference_ != null
              && reference_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            reference_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(reference_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            reference_ = value;
          }
          onChanged();
        } else {
          referenceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public Builder clearReference() {
        if (referenceBuilder_ == null) {
          reference_ = null;
          onChanged();
        } else {
          referenceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getReferenceBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getReferenceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getReferenceOrBuilder() {
        if (referenceBuilder_ != null) {
          return referenceBuilder_.getMessageOrBuilder();
        } else {
          return reference_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : reference_;
        }
      }
      /**
       *
       *
       * <pre>
       * The reference to an object in the system.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference reference = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getReferenceFieldBuilder() {
        if (referenceBuilder_ == null) {
          referenceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getReference(), getParentForChildren(), isClean());
          reference_ = null;
        }
        return referenceBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SerializedReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SerializedReference)
    private static final io.kubernetes.client.proto.V1.SerializedReference DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SerializedReference();
    }

    public static io.kubernetes.client.proto.V1.SerializedReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SerializedReference> PARSER =
        new com.google.protobuf.AbstractParser<SerializedReference>() {
          @java.lang.Override
          public SerializedReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SerializedReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SerializedReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SerializedReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SerializedReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Service)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    boolean hasSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ServiceSpec getSpec();
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    io.kubernetes.client.proto.V1.ServiceSpecOrBuilder getSpecOrBuilder();

    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    boolean hasStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ServiceStatus getStatus();
    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    io.kubernetes.client.proto.V1.ServiceStatusOrBuilder getStatusOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Service is a named abstraction of software service (for example, mysql) consisting of local port
   * (for example 3306) that the proxy listens on, and the selector that determines which pods
   * will answer requests sent through the proxy.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Service}
   */
  public static final class Service extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Service)
      ServiceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Service.newBuilder() to construct.
    private Service(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Service() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Service(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.ServiceSpec.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = spec_.toBuilder();
                }
                spec_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ServiceSpec.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(spec_);
                  spec_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ServiceStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = status_.toBuilder();
                }
                status_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ServiceStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(status_);
                  status_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Service_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Service_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Service.class,
              io.kubernetes.client.proto.V1.Service.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SPEC_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.ServiceSpec spec_;
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    public boolean hasSpec() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceSpec getSpec() {
      return spec_ == null ? io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance() : spec_;
    }
    /**
     *
     *
     * <pre>
     * Spec defines the behavior of a service.
     * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceSpecOrBuilder getSpecOrBuilder() {
      return spec_ == null ? io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance() : spec_;
    }

    public static final int STATUS_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ServiceStatus status_;
    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    public boolean hasStatus() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceStatus getStatus() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()
          : status_;
    }
    /**
     *
     *
     * <pre>
     * Most recently observed status of the service.
     * Populated by the system.
     * Read-only.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceStatusOrBuilder getStatusOrBuilder() {
      return status_ == null
          ? io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()
          : status_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getStatus());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getSpec());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getStatus());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Service)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Service other = (io.kubernetes.client.proto.V1.Service) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && (hasSpec() == other.hasSpec());
      if (hasSpec()) {
        result = result && getSpec().equals(other.getSpec());
      }
      result = result && (hasStatus() == other.hasStatus());
      if (hasStatus()) {
        result = result && getStatus().equals(other.getStatus());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (hasSpec()) {
        hash = (37 * hash) + SPEC_FIELD_NUMBER;
        hash = (53 * hash) + getSpec().hashCode();
      }
      if (hasStatus()) {
        hash = (37 * hash) + STATUS_FIELD_NUMBER;
        hash = (53 * hash) + getStatus().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Service parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Service parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Service parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Service prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Service is a named abstraction of software service (for example, mysql) consisting of local port
     * (for example 3306) that the proxy listens on, and the selector that determines which pods
     * will answer requests sent through the proxy.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Service}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Service)
        io.kubernetes.client.proto.V1.ServiceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Service_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Service_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Service.class,
                io.kubernetes.client.proto.V1.Service.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Service.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSpecFieldBuilder();
          getStatusFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (specBuilder_ == null) {
          spec_ = null;
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (statusBuilder_ == null) {
          status_ = null;
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Service_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Service getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Service.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Service build() {
        io.kubernetes.client.proto.V1.Service result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Service buildPartial() {
        io.kubernetes.client.proto.V1.Service result =
            new io.kubernetes.client.proto.V1.Service(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (specBuilder_ == null) {
          result.spec_ = spec_;
        } else {
          result.spec_ = specBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (statusBuilder_ == null) {
          result.status_ = status_;
        } else {
          result.status_ = statusBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Service) {
          return mergeFrom((io.kubernetes.client.proto.V1.Service) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Service other) {
        if (other == io.kubernetes.client.proto.V1.Service.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (other.hasSpec()) {
          mergeSpec(other.getSpec());
        }
        if (other.hasStatus()) {
          mergeStatus(other.getStatus());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Service parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Service) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private io.kubernetes.client.proto.V1.ServiceSpec spec_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceSpec,
              io.kubernetes.client.proto.V1.ServiceSpec.Builder,
              io.kubernetes.client.proto.V1.ServiceSpecOrBuilder>
          specBuilder_;
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public boolean hasSpec() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceSpec getSpec() {
        if (specBuilder_ == null) {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance()
              : spec_;
        } else {
          return specBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.ServiceSpec value) {
        if (specBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          spec_ = value;
          onChanged();
        } else {
          specBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public Builder setSpec(io.kubernetes.client.proto.V1.ServiceSpec.Builder builderForValue) {
        if (specBuilder_ == null) {
          spec_ = builderForValue.build();
          onChanged();
        } else {
          specBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public Builder mergeSpec(io.kubernetes.client.proto.V1.ServiceSpec value) {
        if (specBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && spec_ != null
              && spec_ != io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance()) {
            spec_ =
                io.kubernetes.client.proto.V1.ServiceSpec.newBuilder(spec_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            spec_ = value;
          }
          onChanged();
        } else {
          specBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public Builder clearSpec() {
        if (specBuilder_ == null) {
          spec_ = null;
          onChanged();
        } else {
          specBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceSpec.Builder getSpecBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getSpecFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceSpecOrBuilder getSpecOrBuilder() {
        if (specBuilder_ != null) {
          return specBuilder_.getMessageOrBuilder();
        } else {
          return spec_ == null
              ? io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance()
              : spec_;
        }
      }
      /**
       *
       *
       * <pre>
       * Spec defines the behavior of a service.
       * https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceSpec spec = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceSpec,
              io.kubernetes.client.proto.V1.ServiceSpec.Builder,
              io.kubernetes.client.proto.V1.ServiceSpecOrBuilder>
          getSpecFieldBuilder() {
        if (specBuilder_ == null) {
          specBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ServiceSpec,
                  io.kubernetes.client.proto.V1.ServiceSpec.Builder,
                  io.kubernetes.client.proto.V1.ServiceSpecOrBuilder>(
                  getSpec(), getParentForChildren(), isClean());
          spec_ = null;
        }
        return specBuilder_;
      }

      private io.kubernetes.client.proto.V1.ServiceStatus status_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceStatus,
              io.kubernetes.client.proto.V1.ServiceStatus.Builder,
              io.kubernetes.client.proto.V1.ServiceStatusOrBuilder>
          statusBuilder_;
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public boolean hasStatus() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceStatus getStatus() {
        if (statusBuilder_ == null) {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()
              : status_;
        } else {
          return statusBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public Builder setStatus(io.kubernetes.client.proto.V1.ServiceStatus value) {
        if (statusBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          status_ = value;
          onChanged();
        } else {
          statusBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public Builder setStatus(
          io.kubernetes.client.proto.V1.ServiceStatus.Builder builderForValue) {
        if (statusBuilder_ == null) {
          status_ = builderForValue.build();
          onChanged();
        } else {
          statusBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public Builder mergeStatus(io.kubernetes.client.proto.V1.ServiceStatus value) {
        if (statusBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && status_ != null
              && status_ != io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()) {
            status_ =
                io.kubernetes.client.proto.V1.ServiceStatus.newBuilder(status_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            status_ = value;
          }
          onChanged();
        } else {
          statusBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public Builder clearStatus() {
        if (statusBuilder_ == null) {
          status_ = null;
          onChanged();
        } else {
          statusBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceStatus.Builder getStatusBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getStatusFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceStatusOrBuilder getStatusOrBuilder() {
        if (statusBuilder_ != null) {
          return statusBuilder_.getMessageOrBuilder();
        } else {
          return status_ == null
              ? io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()
              : status_;
        }
      }
      /**
       *
       *
       * <pre>
       * Most recently observed status of the service.
       * Populated by the system.
       * Read-only.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ServiceStatus status = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceStatus,
              io.kubernetes.client.proto.V1.ServiceStatus.Builder,
              io.kubernetes.client.proto.V1.ServiceStatusOrBuilder>
          getStatusFieldBuilder() {
        if (statusBuilder_ == null) {
          statusBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ServiceStatus,
                  io.kubernetes.client.proto.V1.ServiceStatus.Builder,
                  io.kubernetes.client.proto.V1.ServiceStatusOrBuilder>(
                  getStatus(), getParentForChildren(), isClean());
          status_ = null;
        }
        return statusBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Service)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Service)
    private static final io.kubernetes.client.proto.V1.Service DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Service();
    }

    public static io.kubernetes.client.proto.V1.Service getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Service> PARSER =
        new com.google.protobuf.AbstractParser<Service>() {
          @java.lang.Override
          public Service parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Service(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Service> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Service> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Service getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceAccountOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceAccount)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ObjectReference> getSecretsList();
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getSecrets(int index);
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    int getSecretsCount();
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
        getSecretsOrBuilderList();
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> getImagePullSecretsList();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index);
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    int getImagePullSecretsCount();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
        getImagePullSecretsOrBuilderList();
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getImagePullSecretsOrBuilder(
        int index);

    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
     * Can be overridden at the pod level.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 4;</code>
     */
    boolean hasAutomountServiceAccountToken();
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
     * Can be overridden at the pod level.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 4;</code>
     */
    boolean getAutomountServiceAccountToken();
  }
  /**
   *
   *
   * <pre>
   * ServiceAccount binds together:
   * * a name, understood by users, and perhaps by peripheral systems, for an identity
   * * a principal that can be authenticated and authorized
   * * a set of secrets
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceAccount}
   */
  public static final class ServiceAccount extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceAccount)
      ServiceAccountOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceAccount.newBuilder() to construct.
    private ServiceAccount(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceAccount() {
      secrets_ = java.util.Collections.emptyList();
      imagePullSecrets_ = java.util.Collections.emptyList();
      automountServiceAccountToken_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceAccount(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ObjectMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ObjectMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  secrets_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.ObjectReference>();
                  mutable_bitField0_ |= 0x00000002;
                }
                secrets_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry));
                break;
              }
            case 26:
              {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  imagePullSecrets_ =
                      new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>();
                  mutable_bitField0_ |= 0x00000004;
                }
                imagePullSecrets_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry));
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000002;
                automountServiceAccountToken_ = input.readBool();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          secrets_ = java.util.Collections.unmodifiableList(secrets_);
        }
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceAccount_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceAccount.class,
              io.kubernetes.client.proto.V1.ServiceAccount.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ObjectMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard object's metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int SECRETS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ObjectReference> secrets_;
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ObjectReference> getSecretsList() {
      return secrets_;
    }
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
        getSecretsOrBuilderList() {
      return secrets_;
    }
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    public int getSecretsCount() {
      return secrets_.size();
    }
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getSecrets(int index) {
      return secrets_.get(index);
    }
    /**
     *
     *
     * <pre>
     * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
     * More info: https://kubernetes.io/docs/concepts/configuration/secret
     * +optional
     * +patchMergeKey=name
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretsOrBuilder(int index) {
      return secrets_.get(index);
    }

    public static final int IMAGEPULLSECRETS_FIELD_NUMBER = 3;
    private java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> imagePullSecrets_;
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference>
        getImagePullSecretsList() {
      return imagePullSecrets_;
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
        getImagePullSecretsOrBuilderList() {
      return imagePullSecrets_;
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    public int getImagePullSecretsCount() {
      return imagePullSecrets_.size();
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index) {
      return imagePullSecrets_.get(index);
    }
    /**
     *
     *
     * <pre>
     * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
     * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
     * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
     * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
     * +optional
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getImagePullSecretsOrBuilder(
        int index) {
      return imagePullSecrets_.get(index);
    }

    public static final int AUTOMOUNTSERVICEACCOUNTTOKEN_FIELD_NUMBER = 4;
    private boolean automountServiceAccountToken_;
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
     * Can be overridden at the pod level.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 4;</code>
     */
    public boolean hasAutomountServiceAccountToken() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
     * Can be overridden at the pod level.
     * +optional
     * </pre>
     *
     * <code>optional bool automountServiceAccountToken = 4;</code>
     */
    public boolean getAutomountServiceAccountToken() {
      return automountServiceAccountToken_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < secrets_.size(); i++) {
        output.writeMessage(2, secrets_.get(i));
      }
      for (int i = 0; i < imagePullSecrets_.size(); i++) {
        output.writeMessage(3, imagePullSecrets_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(4, automountServiceAccountToken_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < secrets_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, secrets_.get(i));
      }
      for (int i = 0; i < imagePullSecrets_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(3, imagePullSecrets_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeBoolSize(4, automountServiceAccountToken_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceAccount)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceAccount other =
          (io.kubernetes.client.proto.V1.ServiceAccount) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getSecretsList().equals(other.getSecretsList());
      result = result && getImagePullSecretsList().equals(other.getImagePullSecretsList());
      result =
          result && (hasAutomountServiceAccountToken() == other.hasAutomountServiceAccountToken());
      if (hasAutomountServiceAccountToken()) {
        result =
            result
                && (getAutomountServiceAccountToken() == other.getAutomountServiceAccountToken());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getSecretsCount() > 0) {
        hash = (37 * hash) + SECRETS_FIELD_NUMBER;
        hash = (53 * hash) + getSecretsList().hashCode();
      }
      if (getImagePullSecretsCount() > 0) {
        hash = (37 * hash) + IMAGEPULLSECRETS_FIELD_NUMBER;
        hash = (53 * hash) + getImagePullSecretsList().hashCode();
      }
      if (hasAutomountServiceAccountToken()) {
        hash = (37 * hash) + AUTOMOUNTSERVICEACCOUNTTOKEN_FIELD_NUMBER;
        hash =
            (53 * hash)
                + com.google.protobuf.Internal.hashBoolean(getAutomountServiceAccountToken());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceAccount prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceAccount binds together:
     * * a name, understood by users, and perhaps by peripheral systems, for an identity
     * * a principal that can be authenticated and authorized
     * * a set of secrets
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceAccount}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceAccount)
        io.kubernetes.client.proto.V1.ServiceAccountOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceAccount_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceAccount.class,
                io.kubernetes.client.proto.V1.ServiceAccount.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceAccount.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getSecretsFieldBuilder();
          getImagePullSecretsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (secretsBuilder_ == null) {
          secrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          secretsBuilder_.clear();
        }
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          imagePullSecretsBuilder_.clear();
        }
        automountServiceAccountToken_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccount getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceAccount.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccount build() {
        io.kubernetes.client.proto.V1.ServiceAccount result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccount buildPartial() {
        io.kubernetes.client.proto.V1.ServiceAccount result =
            new io.kubernetes.client.proto.V1.ServiceAccount(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (secretsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            secrets_ = java.util.Collections.unmodifiableList(secrets_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.secrets_ = secrets_;
        } else {
          result.secrets_ = secretsBuilder_.build();
        }
        if (imagePullSecretsBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            imagePullSecrets_ = java.util.Collections.unmodifiableList(imagePullSecrets_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.imagePullSecrets_ = imagePullSecrets_;
        } else {
          result.imagePullSecrets_ = imagePullSecretsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        result.automountServiceAccountToken_ = automountServiceAccountToken_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceAccount) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceAccount) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceAccount other) {
        if (other == io.kubernetes.client.proto.V1.ServiceAccount.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (secretsBuilder_ == null) {
          if (!other.secrets_.isEmpty()) {
            if (secrets_.isEmpty()) {
              secrets_ = other.secrets_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureSecretsIsMutable();
              secrets_.addAll(other.secrets_);
            }
            onChanged();
          }
        } else {
          if (!other.secrets_.isEmpty()) {
            if (secretsBuilder_.isEmpty()) {
              secretsBuilder_.dispose();
              secretsBuilder_ = null;
              secrets_ = other.secrets_;
              bitField0_ = (bitField0_ & ~0x00000002);
              secretsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getSecretsFieldBuilder()
                      : null;
            } else {
              secretsBuilder_.addAllMessages(other.secrets_);
            }
          }
        }
        if (imagePullSecretsBuilder_ == null) {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecrets_.isEmpty()) {
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureImagePullSecretsIsMutable();
              imagePullSecrets_.addAll(other.imagePullSecrets_);
            }
            onChanged();
          }
        } else {
          if (!other.imagePullSecrets_.isEmpty()) {
            if (imagePullSecretsBuilder_.isEmpty()) {
              imagePullSecretsBuilder_.dispose();
              imagePullSecretsBuilder_ = null;
              imagePullSecrets_ = other.imagePullSecrets_;
              bitField0_ = (bitField0_ & ~0x00000004);
              imagePullSecretsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getImagePullSecretsFieldBuilder()
                      : null;
            } else {
              imagePullSecretsBuilder_.addAllMessages(other.imagePullSecrets_);
            }
          }
        }
        if (other.hasAutomountServiceAccountToken()) {
          setAutomountServiceAccountToken(other.getAutomountServiceAccountToken());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceAccount parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ServiceAccount) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ObjectMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder setMetadata(
          io.kubernetes.client.proto.Meta.ObjectMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ObjectMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ObjectMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ObjectMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard object's metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ObjectMeta,
              io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
              io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ObjectMeta,
                  io.kubernetes.client.proto.Meta.ObjectMeta.Builder,
                  io.kubernetes.client.proto.Meta.ObjectMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ObjectReference> secrets_ =
          java.util.Collections.emptyList();

      private void ensureSecretsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          secrets_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.ObjectReference>(secrets_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          secretsBuilder_;

      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ObjectReference> getSecretsList() {
        if (secretsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(secrets_);
        } else {
          return secretsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public int getSecretsCount() {
        if (secretsBuilder_ == null) {
          return secrets_.size();
        } else {
          return secretsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getSecrets(int index) {
        if (secretsBuilder_ == null) {
          return secrets_.get(index);
        } else {
          return secretsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder setSecrets(int index, io.kubernetes.client.proto.V1.ObjectReference value) {
        if (secretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecretsIsMutable();
          secrets_.set(index, value);
          onChanged();
        } else {
          secretsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder setSecrets(
          int index, io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (secretsBuilder_ == null) {
          ensureSecretsIsMutable();
          secrets_.set(index, builderForValue.build());
          onChanged();
        } else {
          secretsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder addSecrets(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (secretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecretsIsMutable();
          secrets_.add(value);
          onChanged();
        } else {
          secretsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder addSecrets(int index, io.kubernetes.client.proto.V1.ObjectReference value) {
        if (secretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSecretsIsMutable();
          secrets_.add(index, value);
          onChanged();
        } else {
          secretsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder addSecrets(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (secretsBuilder_ == null) {
          ensureSecretsIsMutable();
          secrets_.add(builderForValue.build());
          onChanged();
        } else {
          secretsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder addSecrets(
          int index, io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (secretsBuilder_ == null) {
          ensureSecretsIsMutable();
          secrets_.add(index, builderForValue.build());
          onChanged();
        } else {
          secretsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder addAllSecrets(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ObjectReference> values) {
        if (secretsBuilder_ == null) {
          ensureSecretsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, secrets_);
          onChanged();
        } else {
          secretsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder clearSecrets() {
        if (secretsBuilder_ == null) {
          secrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          secretsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public Builder removeSecrets(int index) {
        if (secretsBuilder_ == null) {
          ensureSecretsIsMutable();
          secrets_.remove(index);
          onChanged();
        } else {
          secretsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getSecretsBuilder(int index) {
        return getSecretsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretsOrBuilder(int index) {
        if (secretsBuilder_ == null) {
          return secrets_.get(index);
        } else {
          return secretsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getSecretsOrBuilderList() {
        if (secretsBuilder_ != null) {
          return secretsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(secrets_);
        }
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder addSecretsBuilder() {
        return getSecretsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder addSecretsBuilder(int index) {
        return getSecretsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * Secrets is the list of secrets allowed to be used by pods running using this ServiceAccount.
       * More info: https://kubernetes.io/docs/concepts/configuration/secret
       * +optional
       * +patchMergeKey=name
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ObjectReference secrets = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ObjectReference.Builder>
          getSecretsBuilderList() {
        return getSecretsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getSecretsFieldBuilder() {
        if (secretsBuilder_ == null) {
          secretsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  secrets_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          secrets_ = null;
        }
        return secretsBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference> imagePullSecrets_ =
          java.util.Collections.emptyList();

      private void ensureImagePullSecretsIsMutable() {
        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
          imagePullSecrets_ =
              new java.util.ArrayList<io.kubernetes.client.proto.V1.LocalObjectReference>(
                  imagePullSecrets_);
          bitField0_ |= 0x00000004;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          imagePullSecretsBuilder_;

      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference>
          getImagePullSecretsList() {
        if (imagePullSecretsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(imagePullSecrets_);
        } else {
          return imagePullSecretsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public int getImagePullSecretsCount() {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.size();
        } else {
          return imagePullSecretsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getImagePullSecrets(int index) {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.get(index);
        } else {
          return imagePullSecretsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder setImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.set(index, value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder setImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.set(index, builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder addImagePullSecrets(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder addImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (imagePullSecretsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(index, value);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder addImagePullSecrets(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder addImagePullSecrets(
          int index, io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.add(index, builderForValue.build());
          onChanged();
        } else {
          imagePullSecretsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder addAllImagePullSecrets(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.LocalObjectReference> values) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, imagePullSecrets_);
          onChanged();
        } else {
          imagePullSecretsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder clearImagePullSecrets() {
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecrets_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          imagePullSecretsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public Builder removeImagePullSecrets(int index) {
        if (imagePullSecretsBuilder_ == null) {
          ensureImagePullSecretsIsMutable();
          imagePullSecrets_.remove(index);
          onChanged();
        } else {
          imagePullSecretsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getImagePullSecretsBuilder(
          int index) {
        return getImagePullSecretsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder
          getImagePullSecretsOrBuilder(int index) {
        if (imagePullSecretsBuilder_ == null) {
          return imagePullSecrets_.get(index);
        } else {
          return imagePullSecretsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getImagePullSecretsOrBuilderList() {
        if (imagePullSecretsBuilder_ != null) {
          return imagePullSecretsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(imagePullSecrets_);
        }
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder
          addImagePullSecretsBuilder() {
        return getImagePullSecretsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder addImagePullSecretsBuilder(
          int index) {
        return getImagePullSecretsFieldBuilder()
            .addBuilder(
                index, io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * ImagePullSecrets is a list of references to secrets in the same namespace to use for pulling any images
       * in pods that reference this ServiceAccount. ImagePullSecrets are distinct from Secrets because Secrets
       * can be mounted in the pod, but ImagePullSecrets are only accessed by the kubelet.
       * More info: https://kubernetes.io/docs/concepts/containers/images/#specifying-imagepullsecrets-on-a-pod
       * +optional
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.LocalObjectReference imagePullSecrets = 3;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.LocalObjectReference.Builder>
          getImagePullSecretsBuilderList() {
        return getImagePullSecretsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getImagePullSecretsFieldBuilder() {
        if (imagePullSecretsBuilder_ == null) {
          imagePullSecretsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  imagePullSecrets_,
                  ((bitField0_ & 0x00000004) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          imagePullSecrets_ = null;
        }
        return imagePullSecretsBuilder_;
      }

      private boolean automountServiceAccountToken_;
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
       * Can be overridden at the pod level.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 4;</code>
       */
      public boolean hasAutomountServiceAccountToken() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
       * Can be overridden at the pod level.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 4;</code>
       */
      public boolean getAutomountServiceAccountToken() {
        return automountServiceAccountToken_;
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
       * Can be overridden at the pod level.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 4;</code>
       */
      public Builder setAutomountServiceAccountToken(boolean value) {
        bitField0_ |= 0x00000008;
        automountServiceAccountToken_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * AutomountServiceAccountToken indicates whether pods running as this service account should have an API token automatically mounted.
       * Can be overridden at the pod level.
       * +optional
       * </pre>
       *
       * <code>optional bool automountServiceAccountToken = 4;</code>
       */
      public Builder clearAutomountServiceAccountToken() {
        bitField0_ = (bitField0_ & ~0x00000008);
        automountServiceAccountToken_ = false;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceAccount)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceAccount)
    private static final io.kubernetes.client.proto.V1.ServiceAccount DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceAccount();
    }

    public static io.kubernetes.client.proto.V1.ServiceAccount getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceAccount> PARSER =
        new com.google.protobuf.AbstractParser<ServiceAccount>() {
          @java.lang.Override
          public ServiceAccount parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceAccount(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceAccount> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceAccount> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceAccount getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceAccountListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceAccountList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ServiceAccount> getItemsList();
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ServiceAccount getItems(int index);
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ServiceAccountOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ServiceAccountList is a list of ServiceAccount objects
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceAccountList}
   */
  public static final class ServiceAccountList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceAccountList)
      ServiceAccountListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceAccountList.newBuilder() to construct.
    private ServiceAccountList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceAccountList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceAccountList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ServiceAccount>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ServiceAccount.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceAccountList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceAccountList.class,
              io.kubernetes.client.proto.V1.ServiceAccountList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.ServiceAccount> items_;
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ServiceAccount> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceAccount getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of ServiceAccounts.
     * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceAccountOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceAccountList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceAccountList other =
          (io.kubernetes.client.proto.V1.ServiceAccountList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceAccountList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceAccountList is a list of ServiceAccount objects
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceAccountList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceAccountList)
        io.kubernetes.client.proto.V1.ServiceAccountListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceAccountList.class,
                io.kubernetes.client.proto.V1.ServiceAccountList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceAccountList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceAccountList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountList build() {
        io.kubernetes.client.proto.V1.ServiceAccountList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountList buildPartial() {
        io.kubernetes.client.proto.V1.ServiceAccountList result =
            new io.kubernetes.client.proto.V1.ServiceAccountList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceAccountList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceAccountList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceAccountList other) {
        if (other == io.kubernetes.client.proto.V1.ServiceAccountList.getDefaultInstance())
          return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceAccountList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ServiceAccountList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.ServiceAccount> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ServiceAccount>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceAccount,
              io.kubernetes.client.proto.V1.ServiceAccount.Builder,
              io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ServiceAccount> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccount getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.ServiceAccount value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.ServiceAccount.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.ServiceAccount value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.ServiceAccount value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder addItems(
          io.kubernetes.client.proto.V1.ServiceAccount.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.ServiceAccount.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ServiceAccount> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccount.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccountOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccount.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ServiceAccount.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccount.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ServiceAccount.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of ServiceAccounts.
       * More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServiceAccount items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ServiceAccount.Builder>
          getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceAccount,
              io.kubernetes.client.proto.V1.ServiceAccount.Builder,
              io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ServiceAccount,
                  io.kubernetes.client.proto.V1.ServiceAccount.Builder,
                  io.kubernetes.client.proto.V1.ServiceAccountOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceAccountList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceAccountList)
    private static final io.kubernetes.client.proto.V1.ServiceAccountList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceAccountList();
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceAccountList> PARSER =
        new com.google.protobuf.AbstractParser<ServiceAccountList>() {
          @java.lang.Override
          public ServiceAccountList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceAccountList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceAccountList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceAccountList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceAccountList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceAccountTokenProjectionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceAccountTokenProjection)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    boolean hasAudience();
    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    java.lang.String getAudience();
    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    com.google.protobuf.ByteString getAudienceBytes();

    /**
     *
     *
     * <pre>
     * ExpirationSeconds is the requested duration of validity of the service
     * account token. As the token approaches expiration, the kubelet volume
     * plugin will proactively rotate the service account token. The kubelet will
     * start trying to rotate the token if the token is older than 80 percent of
     * its time to live or if the token is older than 24 hours.Defaults to 1 hour
     * and must be at least 10 minutes.
     * +optional
     * </pre>
     *
     * <code>optional int64 expirationSeconds = 2;</code>
     */
    boolean hasExpirationSeconds();
    /**
     *
     *
     * <pre>
     * ExpirationSeconds is the requested duration of validity of the service
     * account token. As the token approaches expiration, the kubelet volume
     * plugin will proactively rotate the service account token. The kubelet will
     * start trying to rotate the token if the token is older than 80 percent of
     * its time to live or if the token is older than 24 hours.Defaults to 1 hour
     * and must be at least 10 minutes.
     * +optional
     * </pre>
     *
     * <code>optional int64 expirationSeconds = 2;</code>
     */
    long getExpirationSeconds();

    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    com.google.protobuf.ByteString getPathBytes();
  }
  /**
   *
   *
   * <pre>
   * ServiceAccountTokenProjection represents a projected service account token
   * volume. This projection can be used to insert a service account token into
   * the pods runtime filesystem for use against APIs (Kubernetes API Server or
   * otherwise).
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceAccountTokenProjection}
   */
  public static final class ServiceAccountTokenProjection
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceAccountTokenProjection)
      ServiceAccountTokenProjectionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceAccountTokenProjection.newBuilder() to construct.
    private ServiceAccountTokenProjection(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceAccountTokenProjection() {
      audience_ = "";
      expirationSeconds_ = 0L;
      path_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceAccountTokenProjection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                audience_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                expirationSeconds_ = input.readInt64();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                path_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.class,
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder.class);
    }

    private int bitField0_;
    public static final int AUDIENCE_FIELD_NUMBER = 1;
    private volatile java.lang.Object audience_;
    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    public boolean hasAudience() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    public java.lang.String getAudience() {
      java.lang.Object ref = audience_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          audience_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Audience is the intended audience of the token. A recipient of a token
     * must identify itself with an identifier specified in the audience of the
     * token, and otherwise should reject the token. The audience defaults to the
     * identifier of the apiserver.
     * +optional
     * </pre>
     *
     * <code>optional string audience = 1;</code>
     */
    public com.google.protobuf.ByteString getAudienceBytes() {
      java.lang.Object ref = audience_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        audience_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXPIRATIONSECONDS_FIELD_NUMBER = 2;
    private long expirationSeconds_;
    /**
     *
     *
     * <pre>
     * ExpirationSeconds is the requested duration of validity of the service
     * account token. As the token approaches expiration, the kubelet volume
     * plugin will proactively rotate the service account token. The kubelet will
     * start trying to rotate the token if the token is older than 80 percent of
     * its time to live or if the token is older than 24 hours.Defaults to 1 hour
     * and must be at least 10 minutes.
     * +optional
     * </pre>
     *
     * <code>optional int64 expirationSeconds = 2;</code>
     */
    public boolean hasExpirationSeconds() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * ExpirationSeconds is the requested duration of validity of the service
     * account token. As the token approaches expiration, the kubelet volume
     * plugin will proactively rotate the service account token. The kubelet will
     * start trying to rotate the token if the token is older than 80 percent of
     * its time to live or if the token is older than 24 hours.Defaults to 1 hour
     * and must be at least 10 minutes.
     * +optional
     * </pre>
     *
     * <code>optional int64 expirationSeconds = 2;</code>
     */
    public long getExpirationSeconds() {
      return expirationSeconds_;
    }

    public static final int PATH_FIELD_NUMBER = 3;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the path relative to the mount point of the file to project the
     * token into.
     * </pre>
     *
     * <code>optional string path = 3;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, audience_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt64(2, expirationSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, path_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, audience_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(2, expirationSeconds_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, path_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceAccountTokenProjection)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceAccountTokenProjection other =
          (io.kubernetes.client.proto.V1.ServiceAccountTokenProjection) obj;

      boolean result = true;
      result = result && (hasAudience() == other.hasAudience());
      if (hasAudience()) {
        result = result && getAudience().equals(other.getAudience());
      }
      result = result && (hasExpirationSeconds() == other.hasExpirationSeconds());
      if (hasExpirationSeconds()) {
        result = result && (getExpirationSeconds() == other.getExpirationSeconds());
      }
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasAudience()) {
        hash = (37 * hash) + AUDIENCE_FIELD_NUMBER;
        hash = (53 * hash) + getAudience().hashCode();
      }
      if (hasExpirationSeconds()) {
        hash = (37 * hash) + EXPIRATIONSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getExpirationSeconds());
      }
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.ServiceAccountTokenProjection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceAccountTokenProjection represents a projected service account token
     * volume. This projection can be used to insert a service account token into
     * the pods runtime filesystem for use against APIs (Kubernetes API Server or
     * otherwise).
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceAccountTokenProjection}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceAccountTokenProjection)
        io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.class,
                io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        audience_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        expirationSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection build() {
        io.kubernetes.client.proto.V1.ServiceAccountTokenProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection buildPartial() {
        io.kubernetes.client.proto.V1.ServiceAccountTokenProjection result =
            new io.kubernetes.client.proto.V1.ServiceAccountTokenProjection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.audience_ = audience_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.expirationSeconds_ = expirationSeconds_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceAccountTokenProjection) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceAccountTokenProjection) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceAccountTokenProjection other) {
        if (other
            == io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance())
          return this;
        if (other.hasAudience()) {
          bitField0_ |= 0x00000001;
          audience_ = other.audience_;
          onChanged();
        }
        if (other.hasExpirationSeconds()) {
          setExpirationSeconds(other.getExpirationSeconds());
        }
        if (other.hasPath()) {
          bitField0_ |= 0x00000004;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceAccountTokenProjection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ServiceAccountTokenProjection)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object audience_ = "";
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public boolean hasAudience() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public java.lang.String getAudience() {
        java.lang.Object ref = audience_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            audience_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public com.google.protobuf.ByteString getAudienceBytes() {
        java.lang.Object ref = audience_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          audience_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public Builder setAudience(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        audience_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public Builder clearAudience() {
        bitField0_ = (bitField0_ & ~0x00000001);
        audience_ = getDefaultInstance().getAudience();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Audience is the intended audience of the token. A recipient of a token
       * must identify itself with an identifier specified in the audience of the
       * token, and otherwise should reject the token. The audience defaults to the
       * identifier of the apiserver.
       * +optional
       * </pre>
       *
       * <code>optional string audience = 1;</code>
       */
      public Builder setAudienceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        audience_ = value;
        onChanged();
        return this;
      }

      private long expirationSeconds_;
      /**
       *
       *
       * <pre>
       * ExpirationSeconds is the requested duration of validity of the service
       * account token. As the token approaches expiration, the kubelet volume
       * plugin will proactively rotate the service account token. The kubelet will
       * start trying to rotate the token if the token is older than 80 percent of
       * its time to live or if the token is older than 24 hours.Defaults to 1 hour
       * and must be at least 10 minutes.
       * +optional
       * </pre>
       *
       * <code>optional int64 expirationSeconds = 2;</code>
       */
      public boolean hasExpirationSeconds() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * ExpirationSeconds is the requested duration of validity of the service
       * account token. As the token approaches expiration, the kubelet volume
       * plugin will proactively rotate the service account token. The kubelet will
       * start trying to rotate the token if the token is older than 80 percent of
       * its time to live or if the token is older than 24 hours.Defaults to 1 hour
       * and must be at least 10 minutes.
       * +optional
       * </pre>
       *
       * <code>optional int64 expirationSeconds = 2;</code>
       */
      public long getExpirationSeconds() {
        return expirationSeconds_;
      }
      /**
       *
       *
       * <pre>
       * ExpirationSeconds is the requested duration of validity of the service
       * account token. As the token approaches expiration, the kubelet volume
       * plugin will proactively rotate the service account token. The kubelet will
       * start trying to rotate the token if the token is older than 80 percent of
       * its time to live or if the token is older than 24 hours.Defaults to 1 hour
       * and must be at least 10 minutes.
       * +optional
       * </pre>
       *
       * <code>optional int64 expirationSeconds = 2;</code>
       */
      public Builder setExpirationSeconds(long value) {
        bitField0_ |= 0x00000002;
        expirationSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * ExpirationSeconds is the requested duration of validity of the service
       * account token. As the token approaches expiration, the kubelet volume
       * plugin will proactively rotate the service account token. The kubelet will
       * start trying to rotate the token if the token is older than 80 percent of
       * its time to live or if the token is older than 24 hours.Defaults to 1 hour
       * and must be at least 10 minutes.
       * +optional
       * </pre>
       *
       * <code>optional int64 expirationSeconds = 2;</code>
       */
      public Builder clearExpirationSeconds() {
        bitField0_ = (bitField0_ & ~0x00000002);
        expirationSeconds_ = 0L;
        onChanged();
        return this;
      }

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the path relative to the mount point of the file to project the
       * token into.
       * </pre>
       *
       * <code>optional string path = 3;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        path_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceAccountTokenProjection)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceAccountTokenProjection)
    private static final io.kubernetes.client.proto.V1.ServiceAccountTokenProjection
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceAccountTokenProjection();
    }

    public static io.kubernetes.client.proto.V1.ServiceAccountTokenProjection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceAccountTokenProjection> PARSER =
        new com.google.protobuf.AbstractParser<ServiceAccountTokenProjection>() {
          @java.lang.Override
          public ServiceAccountTokenProjection parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceAccountTokenProjection(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceAccountTokenProjection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceAccountTokenProjection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceListOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceList)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    boolean hasMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMeta getMetadata();
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder();

    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.Service> getItemsList();
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    io.kubernetes.client.proto.V1.Service getItems(int index);
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    int getItemsCount();
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ServiceOrBuilder>
        getItemsOrBuilderList();
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    io.kubernetes.client.proto.V1.ServiceOrBuilder getItemsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * ServiceList holds a list of services.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceList}
   */
  public static final class ServiceList extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceList)
      ServiceListOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceList.newBuilder() to construct.
    private ServiceList(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceList() {
      items_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceList(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.Meta.ListMeta.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = metadata_.toBuilder();
                }
                metadata_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.ListMeta.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(metadata_);
                  metadata_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Service>();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.Service.PARSER, extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = java.util.Collections.unmodifiableList(items_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceList_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceList_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceList.class,
              io.kubernetes.client.proto.V1.ServiceList.Builder.class);
    }

    private int bitField0_;
    public static final int METADATA_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.Meta.ListMeta metadata_;
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public boolean hasMetadata() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }
    /**
     *
     *
     * <pre>
     * Standard list metadata.
     * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
     */
    public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
      return metadata_ == null
          ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
          : metadata_;
    }

    public static final int ITEMS_FIELD_NUMBER = 2;
    private java.util.List<io.kubernetes.client.proto.V1.Service> items_;
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.Service> getItemsList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ServiceOrBuilder>
        getItemsOrBuilderList() {
      return items_;
    }
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    public int getItemsCount() {
      return items_.size();
    }
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.Service getItems(int index) {
      return items_.get(index);
    }
    /**
     *
     *
     * <pre>
     * List of services
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
     */
    public io.kubernetes.client.proto.V1.ServiceOrBuilder getItemsOrBuilder(int index) {
      return items_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        output.writeMessage(2, items_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getMetadata());
      }
      for (int i = 0; i < items_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, items_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceList)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceList other =
          (io.kubernetes.client.proto.V1.ServiceList) obj;

      boolean result = true;
      result = result && (hasMetadata() == other.hasMetadata());
      if (hasMetadata()) {
        result = result && getMetadata().equals(other.getMetadata());
      }
      result = result && getItemsList().equals(other.getItemsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMetadata()) {
        hash = (37 * hash) + METADATA_FIELD_NUMBER;
        hash = (53 * hash) + getMetadata().hashCode();
      }
      if (getItemsCount() > 0) {
        hash = (37 * hash) + ITEMS_FIELD_NUMBER;
        hash = (53 * hash) + getItemsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceList parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceList prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceList holds a list of services.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceList}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceList)
        io.kubernetes.client.proto.V1.ServiceListOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceList_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceList_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceList.class,
                io.kubernetes.client.proto.V1.ServiceList.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceList.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMetadataFieldBuilder();
          getItemsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (metadataBuilder_ == null) {
          metadata_ = null;
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceList_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceList getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceList.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceList build() {
        io.kubernetes.client.proto.V1.ServiceList result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceList buildPartial() {
        io.kubernetes.client.proto.V1.ServiceList result =
            new io.kubernetes.client.proto.V1.ServiceList(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (metadataBuilder_ == null) {
          result.metadata_ = metadata_;
        } else {
          result.metadata_ = metadataBuilder_.build();
        }
        if (itemsBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.items_ = items_;
        } else {
          result.items_ = itemsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceList) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceList) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceList other) {
        if (other == io.kubernetes.client.proto.V1.ServiceList.getDefaultInstance()) return this;
        if (other.hasMetadata()) {
          mergeMetadata(other.getMetadata());
        }
        if (itemsBuilder_ == null) {
          if (!other.items_.isEmpty()) {
            if (items_.isEmpty()) {
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
            } else {
              ensureItemsIsMutable();
              items_.addAll(other.items_);
            }
            onChanged();
          }
        } else {
          if (!other.items_.isEmpty()) {
            if (itemsBuilder_.isEmpty()) {
              itemsBuilder_.dispose();
              itemsBuilder_ = null;
              items_ = other.items_;
              bitField0_ = (bitField0_ & ~0x00000002);
              itemsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getItemsFieldBuilder()
                      : null;
            } else {
              itemsBuilder_.addAllMessages(other.items_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceList parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ServiceList) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.Meta.ListMeta metadata_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          metadataBuilder_;
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public boolean hasMetadata() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta getMetadata() {
        if (metadataBuilder_ == null) {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        } else {
          return metadataBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          metadata_ = value;
          onChanged();
        } else {
          metadataBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder setMetadata(io.kubernetes.client.proto.Meta.ListMeta.Builder builderForValue) {
        if (metadataBuilder_ == null) {
          metadata_ = builderForValue.build();
          onChanged();
        } else {
          metadataBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder mergeMetadata(io.kubernetes.client.proto.Meta.ListMeta value) {
        if (metadataBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && metadata_ != null
              && metadata_ != io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()) {
            metadata_ =
                io.kubernetes.client.proto.Meta.ListMeta.newBuilder(metadata_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            metadata_ = value;
          }
          onChanged();
        } else {
          metadataBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public Builder clearMetadata() {
        if (metadataBuilder_ == null) {
          metadata_ = null;
          onChanged();
        } else {
          metadataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMeta.Builder getMetadataBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getMetadataFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      public io.kubernetes.client.proto.Meta.ListMetaOrBuilder getMetadataOrBuilder() {
        if (metadataBuilder_ != null) {
          return metadataBuilder_.getMessageOrBuilder();
        } else {
          return metadata_ == null
              ? io.kubernetes.client.proto.Meta.ListMeta.getDefaultInstance()
              : metadata_;
        }
      }
      /**
       *
       *
       * <pre>
       * Standard list metadata.
       * More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.ListMeta,
              io.kubernetes.client.proto.Meta.ListMeta.Builder,
              io.kubernetes.client.proto.Meta.ListMetaOrBuilder>
          getMetadataFieldBuilder() {
        if (metadataBuilder_ == null) {
          metadataBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.ListMeta,
                  io.kubernetes.client.proto.Meta.ListMeta.Builder,
                  io.kubernetes.client.proto.Meta.ListMetaOrBuilder>(
                  getMetadata(), getParentForChildren(), isClean());
          metadata_ = null;
        }
        return metadataBuilder_;
      }

      private java.util.List<io.kubernetes.client.proto.V1.Service> items_ =
          java.util.Collections.emptyList();

      private void ensureItemsIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          items_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.Service>(items_);
          bitField0_ |= 0x00000002;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Service,
              io.kubernetes.client.proto.V1.Service.Builder,
              io.kubernetes.client.proto.V1.ServiceOrBuilder>
          itemsBuilder_;

      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Service> getItemsList() {
        if (itemsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(items_);
        } else {
          return itemsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public int getItemsCount() {
        if (itemsBuilder_ == null) {
          return items_.size();
        } else {
          return itemsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Service getItems(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder setItems(int index, io.kubernetes.client.proto.V1.Service value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.set(index, value);
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder setItems(
          int index, io.kubernetes.client.proto.V1.Service.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.set(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Service value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder addItems(int index, io.kubernetes.client.proto.V1.Service value) {
        if (itemsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureItemsIsMutable();
          items_.add(index, value);
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder addItems(io.kubernetes.client.proto.V1.Service.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder addItems(
          int index, io.kubernetes.client.proto.V1.Service.Builder builderForValue) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.add(index, builderForValue.build());
          onChanged();
        } else {
          itemsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder addAllItems(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.Service> values) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, items_);
          onChanged();
        } else {
          itemsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder clearItems() {
        if (itemsBuilder_ == null) {
          items_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
        } else {
          itemsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public Builder removeItems(int index) {
        if (itemsBuilder_ == null) {
          ensureItemsIsMutable();
          items_.remove(index);
          onChanged();
        } else {
          itemsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Service.Builder getItemsBuilder(int index) {
        return getItemsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.ServiceOrBuilder getItemsOrBuilder(int index) {
        if (itemsBuilder_ == null) {
          return items_.get(index);
        } else {
          return itemsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ServiceOrBuilder>
          getItemsOrBuilderList() {
        if (itemsBuilder_ != null) {
          return itemsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(items_);
        }
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Service.Builder addItemsBuilder() {
        return getItemsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.Service.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public io.kubernetes.client.proto.V1.Service.Builder addItemsBuilder(int index) {
        return getItemsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.Service.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * List of services
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.Service items = 2;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.Service.Builder> getItemsBuilderList() {
        return getItemsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.Service,
              io.kubernetes.client.proto.V1.Service.Builder,
              io.kubernetes.client.proto.V1.ServiceOrBuilder>
          getItemsFieldBuilder() {
        if (itemsBuilder_ == null) {
          itemsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.Service,
                  io.kubernetes.client.proto.V1.Service.Builder,
                  io.kubernetes.client.proto.V1.ServiceOrBuilder>(
                  items_,
                  ((bitField0_ & 0x00000002) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          items_ = null;
        }
        return itemsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceList)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceList)
    private static final io.kubernetes.client.proto.V1.ServiceList DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceList();
    }

    public static io.kubernetes.client.proto.V1.ServiceList getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceList> PARSER =
        new com.google.protobuf.AbstractParser<ServiceList>() {
          @java.lang.Override
          public ServiceList parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceList(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceList> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceList> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceList getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServicePortOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServicePort)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    boolean hasProtocol();
    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    java.lang.String getProtocol();
    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    com.google.protobuf.ByteString getProtocolBytes();

    /**
     *
     *
     * <pre>
     * The port that will be exposed by this service.
     * </pre>
     *
     * <code>optional int32 port = 3;</code>
     */
    boolean hasPort();
    /**
     *
     *
     * <pre>
     * The port that will be exposed by this service.
     * </pre>
     *
     * <code>optional int32 port = 3;</code>
     */
    int getPort();

    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    boolean hasTargetPort();
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrString getTargetPort();
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getTargetPortOrBuilder();

    /**
     *
     *
     * <pre>
     * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
     * Usually assigned by the system. If specified, it will be allocated to the service
     * if unused or else creation of the service will fail.
     * Default is to auto-allocate a port if the ServiceType of this Service requires one.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     * +optional
     * </pre>
     *
     * <code>optional int32 nodePort = 5;</code>
     */
    boolean hasNodePort();
    /**
     *
     *
     * <pre>
     * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
     * Usually assigned by the system. If specified, it will be allocated to the service
     * if unused or else creation of the service will fail.
     * Default is to auto-allocate a port if the ServiceType of this Service requires one.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     * +optional
     * </pre>
     *
     * <code>optional int32 nodePort = 5;</code>
     */
    int getNodePort();
  }
  /**
   *
   *
   * <pre>
   * ServicePort contains information on service's port.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServicePort}
   */
  public static final class ServicePort extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServicePort)
      ServicePortOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServicePort.newBuilder() to construct.
    private ServicePort(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServicePort() {
      name_ = "";
      protocol_ = "";
      port_ = 0;
      nodePort_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServicePort(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                protocol_ = bs;
                break;
              }
            case 24:
              {
                bitField0_ |= 0x00000004;
                port_ = input.readInt32();
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.IntStr.IntOrString.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = targetPort_.toBuilder();
                }
                targetPort_ =
                    input.readMessage(
                        io.kubernetes.client.proto.IntStr.IntOrString.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(targetPort_);
                  targetPort_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                nodePort_ = input.readInt32();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServicePort_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServicePort_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServicePort.class,
              io.kubernetes.client.proto.V1.ServicePort.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The name of this port within the service. This must be a DNS_LABEL.
     * All ports within a ServiceSpec must have unique names. This maps to
     * the 'Name' field in EndpointPort objects.
     * Optional if only one ServicePort is defined on this service.
     * +optional
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROTOCOL_FIELD_NUMBER = 2;
    private volatile java.lang.Object protocol_;
    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    public boolean hasProtocol() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    public java.lang.String getProtocol() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          protocol_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
     * Default is TCP.
     * +optional
     * </pre>
     *
     * <code>optional string protocol = 2;</code>
     */
    public com.google.protobuf.ByteString getProtocolBytes() {
      java.lang.Object ref = protocol_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        protocol_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PORT_FIELD_NUMBER = 3;
    private int port_;
    /**
     *
     *
     * <pre>
     * The port that will be exposed by this service.
     * </pre>
     *
     * <code>optional int32 port = 3;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * The port that will be exposed by this service.
     * </pre>
     *
     * <code>optional int32 port = 3;</code>
     */
    public int getPort() {
      return port_;
    }

    public static final int TARGETPORT_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.IntStr.IntOrString targetPort_;
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    public boolean hasTargetPort() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrString getTargetPort() {
      return targetPort_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : targetPort_;
    }
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the pods targeted by the service.
     * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
     * If this is a string, it will be looked up as a named port in the
     * target Pod's container ports. If this is not specified, the value
     * of the 'port' field is used (an identity map).
     * This field is ignored for services with clusterIP=None, and should be
     * omitted or set equal to the 'port' field.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getTargetPortOrBuilder() {
      return targetPort_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : targetPort_;
    }

    public static final int NODEPORT_FIELD_NUMBER = 5;
    private int nodePort_;
    /**
     *
     *
     * <pre>
     * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
     * Usually assigned by the system. If specified, it will be allocated to the service
     * if unused or else creation of the service will fail.
     * Default is to auto-allocate a port if the ServiceType of this Service requires one.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     * +optional
     * </pre>
     *
     * <code>optional int32 nodePort = 5;</code>
     */
    public boolean hasNodePort() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
     * Usually assigned by the system. If specified, it will be allocated to the service
     * if unused or else creation of the service will fail.
     * Default is to auto-allocate a port if the ServiceType of this Service requires one.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
     * +optional
     * </pre>
     *
     * <code>optional int32 nodePort = 5;</code>
     */
    public int getNodePort() {
      return nodePort_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, protocol_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getTargetPort());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt32(5, nodePort_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, protocol_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(3, port_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getTargetPort());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, nodePort_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServicePort)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServicePort other =
          (io.kubernetes.client.proto.V1.ServicePort) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasProtocol() == other.hasProtocol());
      if (hasProtocol()) {
        result = result && getProtocol().equals(other.getProtocol());
      }
      result = result && (hasPort() == other.hasPort());
      if (hasPort()) {
        result = result && (getPort() == other.getPort());
      }
      result = result && (hasTargetPort() == other.hasTargetPort());
      if (hasTargetPort()) {
        result = result && getTargetPort().equals(other.getTargetPort());
      }
      result = result && (hasNodePort() == other.hasNodePort());
      if (hasNodePort()) {
        result = result && (getNodePort() == other.getNodePort());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasProtocol()) {
        hash = (37 * hash) + PROTOCOL_FIELD_NUMBER;
        hash = (53 * hash) + getProtocol().hashCode();
      }
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort();
      }
      if (hasTargetPort()) {
        hash = (37 * hash) + TARGETPORT_FIELD_NUMBER;
        hash = (53 * hash) + getTargetPort().hashCode();
      }
      if (hasNodePort()) {
        hash = (37 * hash) + NODEPORT_FIELD_NUMBER;
        hash = (53 * hash) + getNodePort();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServicePort parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServicePort prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServicePort contains information on service's port.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServicePort}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServicePort)
        io.kubernetes.client.proto.V1.ServicePortOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServicePort_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServicePort_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServicePort.class,
                io.kubernetes.client.proto.V1.ServicePort.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServicePort.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getTargetPortFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        protocol_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (targetPortBuilder_ == null) {
          targetPort_ = null;
        } else {
          targetPortBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        nodePort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServicePort_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServicePort getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServicePort.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServicePort build() {
        io.kubernetes.client.proto.V1.ServicePort result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServicePort buildPartial() {
        io.kubernetes.client.proto.V1.ServicePort result =
            new io.kubernetes.client.proto.V1.ServicePort(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.protocol_ = protocol_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.port_ = port_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (targetPortBuilder_ == null) {
          result.targetPort_ = targetPort_;
        } else {
          result.targetPort_ = targetPortBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.nodePort_ = nodePort_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServicePort) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServicePort) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServicePort other) {
        if (other == io.kubernetes.client.proto.V1.ServicePort.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasProtocol()) {
          bitField0_ |= 0x00000002;
          protocol_ = other.protocol_;
          onChanged();
        }
        if (other.hasPort()) {
          setPort(other.getPort());
        }
        if (other.hasTargetPort()) {
          mergeTargetPort(other.getTargetPort());
        }
        if (other.hasNodePort()) {
          setNodePort(other.getNodePort());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServicePort parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ServicePort) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The name of this port within the service. This must be a DNS_LABEL.
       * All ports within a ServiceSpec must have unique names. This maps to
       * the 'Name' field in EndpointPort objects.
       * Optional if only one ServicePort is defined on this service.
       * +optional
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object protocol_ = "";
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public boolean hasProtocol() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public java.lang.String getProtocol() {
        java.lang.Object ref = protocol_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            protocol_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public com.google.protobuf.ByteString getProtocolBytes() {
        java.lang.Object ref = protocol_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          protocol_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public Builder setProtocol(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        protocol_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public Builder clearProtocol() {
        bitField0_ = (bitField0_ & ~0x00000002);
        protocol_ = getDefaultInstance().getProtocol();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The IP protocol for this port. Supports "TCP", "UDP", and "SCTP".
       * Default is TCP.
       * +optional
       * </pre>
       *
       * <code>optional string protocol = 2;</code>
       */
      public Builder setProtocolBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        protocol_ = value;
        onChanged();
        return this;
      }

      private int port_;
      /**
       *
       *
       * <pre>
       * The port that will be exposed by this service.
       * </pre>
       *
       * <code>optional int32 port = 3;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * The port that will be exposed by this service.
       * </pre>
       *
       * <code>optional int32 port = 3;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       *
       *
       * <pre>
       * The port that will be exposed by this service.
       * </pre>
       *
       * <code>optional int32 port = 3;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000004;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The port that will be exposed by this service.
       * </pre>
       *
       * <code>optional int32 port = 3;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000004);
        port_ = 0;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.IntStr.IntOrString targetPort_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          targetPortBuilder_;
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public boolean hasTargetPort() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString getTargetPort() {
        if (targetPortBuilder_ == null) {
          return targetPort_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : targetPort_;
        } else {
          return targetPortBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public Builder setTargetPort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (targetPortBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          targetPort_ = value;
          onChanged();
        } else {
          targetPortBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public Builder setTargetPort(
          io.kubernetes.client.proto.IntStr.IntOrString.Builder builderForValue) {
        if (targetPortBuilder_ == null) {
          targetPort_ = builderForValue.build();
          onChanged();
        } else {
          targetPortBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public Builder mergeTargetPort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (targetPortBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && targetPort_ != null
              && targetPort_
                  != io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()) {
            targetPort_ =
                io.kubernetes.client.proto.IntStr.IntOrString.newBuilder(targetPort_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            targetPort_ = value;
          }
          onChanged();
        } else {
          targetPortBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public Builder clearTargetPort() {
        if (targetPortBuilder_ == null) {
          targetPort_ = null;
          onChanged();
        } else {
          targetPortBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString.Builder getTargetPortBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getTargetPortFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getTargetPortOrBuilder() {
        if (targetPortBuilder_ != null) {
          return targetPortBuilder_.getMessageOrBuilder();
        } else {
          return targetPort_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : targetPort_;
        }
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the pods targeted by the service.
       * Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.
       * If this is a string, it will be looked up as a named port in the
       * target Pod's container ports. If this is not specified, the value
       * of the 'port' field is used (an identity map).
       * This field is ignored for services with clusterIP=None, and should be
       * omitted or set equal to the 'port' field.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString targetPort = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          getTargetPortFieldBuilder() {
        if (targetPortBuilder_ == null) {
          targetPortBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.IntStr.IntOrString,
                  io.kubernetes.client.proto.IntStr.IntOrString.Builder,
                  io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>(
                  getTargetPort(), getParentForChildren(), isClean());
          targetPort_ = null;
        }
        return targetPortBuilder_;
      }

      private int nodePort_;
      /**
       *
       *
       * <pre>
       * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
       * Usually assigned by the system. If specified, it will be allocated to the service
       * if unused or else creation of the service will fail.
       * Default is to auto-allocate a port if the ServiceType of this Service requires one.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
       * +optional
       * </pre>
       *
       * <code>optional int32 nodePort = 5;</code>
       */
      public boolean hasNodePort() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
       * Usually assigned by the system. If specified, it will be allocated to the service
       * if unused or else creation of the service will fail.
       * Default is to auto-allocate a port if the ServiceType of this Service requires one.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
       * +optional
       * </pre>
       *
       * <code>optional int32 nodePort = 5;</code>
       */
      public int getNodePort() {
        return nodePort_;
      }
      /**
       *
       *
       * <pre>
       * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
       * Usually assigned by the system. If specified, it will be allocated to the service
       * if unused or else creation of the service will fail.
       * Default is to auto-allocate a port if the ServiceType of this Service requires one.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
       * +optional
       * </pre>
       *
       * <code>optional int32 nodePort = 5;</code>
       */
      public Builder setNodePort(int value) {
        bitField0_ |= 0x00000010;
        nodePort_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The port on each node on which this service is exposed when type=NodePort or LoadBalancer.
       * Usually assigned by the system. If specified, it will be allocated to the service
       * if unused or else creation of the service will fail.
       * Default is to auto-allocate a port if the ServiceType of this Service requires one.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
       * +optional
       * </pre>
       *
       * <code>optional int32 nodePort = 5;</code>
       */
      public Builder clearNodePort() {
        bitField0_ = (bitField0_ & ~0x00000010);
        nodePort_ = 0;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServicePort)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServicePort)
    private static final io.kubernetes.client.proto.V1.ServicePort DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServicePort();
    }

    public static io.kubernetes.client.proto.V1.ServicePort getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServicePort> PARSER =
        new com.google.protobuf.AbstractParser<ServicePort>() {
          @java.lang.Override
          public ServicePort parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServicePort(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServicePort> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServicePort> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServicePort getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceProxyOptionsOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceProxyOptions)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    boolean hasPath();
    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    java.lang.String getPath();
    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    com.google.protobuf.ByteString getPathBytes();
  }
  /**
   *
   *
   * <pre>
   * ServiceProxyOptions is the query options to a Service's proxy call.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceProxyOptions}
   */
  public static final class ServiceProxyOptions extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceProxyOptions)
      ServiceProxyOptionsOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceProxyOptions.newBuilder() to construct.
    private ServiceProxyOptions(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceProxyOptions() {
      path_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceProxyOptions(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                path_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceProxyOptions_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceProxyOptions.class,
              io.kubernetes.client.proto.V1.ServiceProxyOptions.Builder.class);
    }

    private int bitField0_;
    public static final int PATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object path_;
    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public boolean hasPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public java.lang.String getPath() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          path_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path is the part of URLs that include service endpoints, suffixes,
     * and parameters to use for the current proxy request to service.
     * For example, the whole request URL is
     * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
     * Path is _search?q=user:kimchy.
     * +optional
     * </pre>
     *
     * <code>optional string path = 1;</code>
     */
    public com.google.protobuf.ByteString getPathBytes() {
      java.lang.Object ref = path_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        path_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, path_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, path_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceProxyOptions)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceProxyOptions other =
          (io.kubernetes.client.proto.V1.ServiceProxyOptions) obj;

      boolean result = true;
      result = result && (hasPath() == other.hasPath());
      if (hasPath()) {
        result = result && getPath().equals(other.getPath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPath()) {
        hash = (37 * hash) + PATH_FIELD_NUMBER;
        hash = (53 * hash) + getPath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceProxyOptions prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceProxyOptions is the query options to a Service's proxy call.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceProxyOptions}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceProxyOptions)
        io.kubernetes.client.proto.V1.ServiceProxyOptionsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceProxyOptions_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceProxyOptions.class,
                io.kubernetes.client.proto.V1.ServiceProxyOptions.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceProxyOptions.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        path_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceProxyOptions getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceProxyOptions.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceProxyOptions build() {
        io.kubernetes.client.proto.V1.ServiceProxyOptions result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceProxyOptions buildPartial() {
        io.kubernetes.client.proto.V1.ServiceProxyOptions result =
            new io.kubernetes.client.proto.V1.ServiceProxyOptions(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.path_ = path_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceProxyOptions) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceProxyOptions) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceProxyOptions other) {
        if (other == io.kubernetes.client.proto.V1.ServiceProxyOptions.getDefaultInstance())
          return this;
        if (other.hasPath()) {
          bitField0_ |= 0x00000001;
          path_ = other.path_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceProxyOptions parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.ServiceProxyOptions) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object path_ = "";
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public boolean hasPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public java.lang.String getPath() {
        java.lang.Object ref = path_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            path_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public com.google.protobuf.ByteString getPathBytes() {
        java.lang.Object ref = path_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          path_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder clearPath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        path_ = getDefaultInstance().getPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path is the part of URLs that include service endpoints, suffixes,
       * and parameters to use for the current proxy request to service.
       * For example, the whole request URL is
       * http://localhost/api/v1/namespaces/kube-system/services/elasticsearch-logging/_search?q=user:kimchy.
       * Path is _search?q=user:kimchy.
       * +optional
       * </pre>
       *
       * <code>optional string path = 1;</code>
       */
      public Builder setPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        path_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceProxyOptions)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceProxyOptions)
    private static final io.kubernetes.client.proto.V1.ServiceProxyOptions DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceProxyOptions();
    }

    public static io.kubernetes.client.proto.V1.ServiceProxyOptions getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceProxyOptions> PARSER =
        new com.google.protobuf.AbstractParser<ServiceProxyOptions>() {
          @java.lang.Override
          public ServiceProxyOptions parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceProxyOptions(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceProxyOptions> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceProxyOptions> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceProxyOptions getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceSpecOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceSpec)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    java.util.List<io.kubernetes.client.proto.V1.ServicePort> getPortsList();
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    io.kubernetes.client.proto.V1.ServicePort getPorts(int index);
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    int getPortsCount();
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    java.util.List<? extends io.kubernetes.client.proto.V1.ServicePortOrBuilder>
        getPortsOrBuilderList();
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    io.kubernetes.client.proto.V1.ServicePortOrBuilder getPortsOrBuilder(int index);

    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    int getSelectorCount();
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    boolean containsSelector(java.lang.String key);
    /** Use {@link #getSelectorMap()} instead. */
    @java.lang.Deprecated
    java.util.Map<java.lang.String, java.lang.String> getSelector();
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.util.Map<java.lang.String, java.lang.String> getSelectorMap();
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.lang.String getSelectorOrDefault(java.lang.String key, java.lang.String defaultValue);
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    java.lang.String getSelectorOrThrow(java.lang.String key);

    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    boolean hasClusterIP();
    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    java.lang.String getClusterIP();
    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    com.google.protobuf.ByteString getClusterIPBytes();

    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    boolean hasType();
    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    java.lang.String getType();
    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    com.google.protobuf.ByteString getTypeBytes();

    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    java.util.List<java.lang.String> getExternalIPsList();
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    int getExternalIPsCount();
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    java.lang.String getExternalIPs(int index);
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    com.google.protobuf.ByteString getExternalIPsBytes(int index);

    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    boolean hasSessionAffinity();
    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    java.lang.String getSessionAffinity();
    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    com.google.protobuf.ByteString getSessionAffinityBytes();

    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    boolean hasLoadBalancerIP();
    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    java.lang.String getLoadBalancerIP();
    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    com.google.protobuf.ByteString getLoadBalancerIPBytes();

    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    java.util.List<java.lang.String> getLoadBalancerSourceRangesList();
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    int getLoadBalancerSourceRangesCount();
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    java.lang.String getLoadBalancerSourceRanges(int index);
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    com.google.protobuf.ByteString getLoadBalancerSourceRangesBytes(int index);

    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    boolean hasExternalName();
    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    java.lang.String getExternalName();
    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    com.google.protobuf.ByteString getExternalNameBytes();

    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    boolean hasExternalTrafficPolicy();
    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    java.lang.String getExternalTrafficPolicy();
    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    com.google.protobuf.ByteString getExternalTrafficPolicyBytes();

    /**
     *
     *
     * <pre>
     * healthCheckNodePort specifies the healthcheck nodePort for the service.
     * If not specified, HealthCheckNodePort is created by the service api
     * backend with the allocated nodePort. Will use user-specified nodePort value
     * if specified by the client. Only effects when Type is set to LoadBalancer
     * and ExternalTrafficPolicy is set to Local.
     * +optional
     * </pre>
     *
     * <code>optional int32 healthCheckNodePort = 12;</code>
     */
    boolean hasHealthCheckNodePort();
    /**
     *
     *
     * <pre>
     * healthCheckNodePort specifies the healthcheck nodePort for the service.
     * If not specified, HealthCheckNodePort is created by the service api
     * backend with the allocated nodePort. Will use user-specified nodePort value
     * if specified by the client. Only effects when Type is set to LoadBalancer
     * and ExternalTrafficPolicy is set to Local.
     * +optional
     * </pre>
     *
     * <code>optional int32 healthCheckNodePort = 12;</code>
     */
    int getHealthCheckNodePort();

    /**
     *
     *
     * <pre>
     * publishNotReadyAddresses, when set to true, indicates that DNS implementations
     * must publish the notReadyAddresses of subsets for the Endpoints associated with
     * the Service. The default value is false.
     * The primary use case for setting this field is to use a StatefulSet's Headless Service
     * to propagate SRV records for its Pods without respect to their readiness for purpose
     * of peer discovery.
     * +optional
     * </pre>
     *
     * <code>optional bool publishNotReadyAddresses = 13;</code>
     */
    boolean hasPublishNotReadyAddresses();
    /**
     *
     *
     * <pre>
     * publishNotReadyAddresses, when set to true, indicates that DNS implementations
     * must publish the notReadyAddresses of subsets for the Endpoints associated with
     * the Service. The default value is false.
     * The primary use case for setting this field is to use a StatefulSet's Headless Service
     * to propagate SRV records for its Pods without respect to their readiness for purpose
     * of peer discovery.
     * +optional
     * </pre>
     *
     * <code>optional bool publishNotReadyAddresses = 13;</code>
     */
    boolean getPublishNotReadyAddresses();

    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    boolean hasSessionAffinityConfig();
    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    io.kubernetes.client.proto.V1.SessionAffinityConfig getSessionAffinityConfig();
    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder
        getSessionAffinityConfigOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ServiceSpec describes the attributes that a user creates on a service.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceSpec}
   */
  public static final class ServiceSpec extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceSpec)
      ServiceSpecOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceSpec.newBuilder() to construct.
    private ServiceSpec(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceSpec() {
      ports_ = java.util.Collections.emptyList();
      clusterIP_ = "";
      type_ = "";
      externalIPs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      sessionAffinity_ = "";
      loadBalancerIP_ = "";
      loadBalancerSourceRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      externalName_ = "";
      externalTrafficPolicy_ = "";
      healthCheckNodePort_ = 0;
      publishNotReadyAddresses_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceSpec(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ServicePort>();
                  mutable_bitField0_ |= 0x00000001;
                }
                ports_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ServicePort.PARSER, extensionRegistry));
                break;
              }
            case 18:
              {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  selector_ =
                      com.google.protobuf.MapField.newMapField(
                          SelectorDefaultEntryHolder.defaultEntry);
                  mutable_bitField0_ |= 0x00000002;
                }
                com.google.protobuf.MapEntry<java.lang.String, java.lang.String> selector__ =
                    input.readMessage(
                        SelectorDefaultEntryHolder.defaultEntry.getParserForType(),
                        extensionRegistry);
                selector_.getMutableMap().put(selector__.getKey(), selector__.getValue());
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                clusterIP_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                type_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
                  externalIPs_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000010;
                }
                externalIPs_.add(bs);
                break;
              }
            case 58:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                sessionAffinity_ = bs;
                break;
              }
            case 66:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                loadBalancerIP_ = bs;
                break;
              }
            case 74:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
                  loadBalancerSourceRanges_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000080;
                }
                loadBalancerSourceRanges_.add(bs);
                break;
              }
            case 82:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                externalName_ = bs;
                break;
              }
            case 90:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000020;
                externalTrafficPolicy_ = bs;
                break;
              }
            case 96:
              {
                bitField0_ |= 0x00000040;
                healthCheckNodePort_ = input.readInt32();
                break;
              }
            case 104:
              {
                bitField0_ |= 0x00000080;
                publishNotReadyAddresses_ = input.readBool();
                break;
              }
            case 114:
              {
                io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder subBuilder = null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = sessionAffinityConfig_.toBuilder();
                }
                sessionAffinityConfig_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SessionAffinityConfig.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(sessionAffinityConfig_);
                  sessionAffinityConfig_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          ports_ = java.util.Collections.unmodifiableList(ports_);
        }
        if (((mutable_bitField0_ & 0x00000010) == 0x00000010)) {
          externalIPs_ = externalIPs_.getUnmodifiableView();
        }
        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
          loadBalancerSourceRanges_ = loadBalancerSourceRanges_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor;
    }

    @SuppressWarnings({"rawtypes"})
    @java.lang.Override
    protected com.google.protobuf.MapField internalGetMapField(int number) {
      switch (number) {
        case 2:
          return internalGetSelector();
        default:
          throw new RuntimeException("Invalid map field number: " + number);
      }
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceSpec_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceSpec.class,
              io.kubernetes.client.proto.V1.ServiceSpec.Builder.class);
    }

    private int bitField0_;
    public static final int PORTS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.ServicePort> ports_;
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.ServicePort> getPortsList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    public java.util.List<? extends io.kubernetes.client.proto.V1.ServicePortOrBuilder>
        getPortsOrBuilderList() {
      return ports_;
    }
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    public int getPortsCount() {
      return ports_.size();
    }
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ServicePort getPorts(int index) {
      return ports_.get(index);
    }
    /**
     *
     *
     * <pre>
     * The list of ports that are exposed by this service.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +patchMergeKey=port
     * +patchStrategy=merge
     * </pre>
     *
     * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ServicePortOrBuilder getPortsOrBuilder(int index) {
      return ports_.get(index);
    }

    public static final int SELECTOR_FIELD_NUMBER = 2;

    private static final class SelectorDefaultEntryHolder {
      static final com.google.protobuf.MapEntry<java.lang.String, java.lang.String> defaultEntry =
          com.google.protobuf.MapEntry.<java.lang.String, java.lang.String>newDefaultInstance(
              io.kubernetes
                  .client
                  .proto
                  .V1
                  .internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_descriptor,
              com.google.protobuf.WireFormat.FieldType.STRING,
              "",
              com.google.protobuf.WireFormat.FieldType.STRING,
              "");
    }

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> selector_;

    private com.google.protobuf.MapField<java.lang.String, java.lang.String> internalGetSelector() {
      if (selector_ == null) {
        return com.google.protobuf.MapField.emptyMapField(SelectorDefaultEntryHolder.defaultEntry);
      }
      return selector_;
    }

    public int getSelectorCount() {
      return internalGetSelector().getMap().size();
    }
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public boolean containsSelector(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      return internalGetSelector().getMap().containsKey(key);
    }
    /** Use {@link #getSelectorMap()} instead. */
    @java.lang.Deprecated
    public java.util.Map<java.lang.String, java.lang.String> getSelector() {
      return getSelectorMap();
    }
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.util.Map<java.lang.String, java.lang.String> getSelectorMap() {
      return internalGetSelector().getMap();
    }
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.lang.String getSelectorOrDefault(
        java.lang.String key, java.lang.String defaultValue) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
      return map.containsKey(key) ? map.get(key) : defaultValue;
    }
    /**
     *
     *
     * <pre>
     * Route service traffic to pods with label keys and values matching this
     * selector. If empty or not present, the service is assumed to have an
     * external process managing its endpoints, which Kubernetes will not
     * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
     * Ignored if type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/
     * +optional
     * </pre>
     *
     * <code>map&lt;string, string&gt; selector = 2;</code>
     */
    public java.lang.String getSelectorOrThrow(java.lang.String key) {
      if (key == null) {
        throw new java.lang.NullPointerException();
      }
      java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
      if (!map.containsKey(key)) {
        throw new java.lang.IllegalArgumentException();
      }
      return map.get(key);
    }

    public static final int CLUSTERIP_FIELD_NUMBER = 3;
    private volatile java.lang.Object clusterIP_;
    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    public boolean hasClusterIP() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    public java.lang.String getClusterIP() {
      java.lang.Object ref = clusterIP_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clusterIP_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * clusterIP is the IP address of the service and is usually assigned
     * randomly by the master. If an address is specified manually and is not in
     * use by others, it will be allocated to the service; otherwise, creation
     * of the service will fail. This field can not be changed through updates.
     * Valid values are "None", empty string (""), or a valid IP address. "None"
     * can be specified for headless services when proxying is not required.
     * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
     * type is ExternalName.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string clusterIP = 3;</code>
     */
    public com.google.protobuf.ByteString getClusterIPBytes() {
      java.lang.Object ref = clusterIP_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        clusterIP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TYPE_FIELD_NUMBER = 4;
    private volatile java.lang.Object type_;
    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    public boolean hasType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    public java.lang.String getType() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          type_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * type determines how the Service is exposed. Defaults to ClusterIP. Valid
     * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
     * "ExternalName" maps to the specified externalName.
     * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
     * endpoints. Endpoints are determined by the selector or if that is not
     * specified, by manual construction of an Endpoints object. If clusterIP is
     * "None", no virtual IP is allocated and the endpoints are published as a
     * set of endpoints rather than a stable IP.
     * "NodePort" builds on ClusterIP and allocates a port on every node which
     * routes to the clusterIP.
     * "LoadBalancer" builds on NodePort and creates an
     * external load-balancer (if supported in the current cloud) which routes
     * to the clusterIP.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
     * +optional
     * </pre>
     *
     * <code>optional string type = 4;</code>
     */
    public com.google.protobuf.ByteString getTypeBytes() {
      java.lang.Object ref = type_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        type_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTERNALIPS_FIELD_NUMBER = 5;
    private com.google.protobuf.LazyStringList externalIPs_;
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    public com.google.protobuf.ProtocolStringList getExternalIPsList() {
      return externalIPs_;
    }
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    public int getExternalIPsCount() {
      return externalIPs_.size();
    }
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    public java.lang.String getExternalIPs(int index) {
      return externalIPs_.get(index);
    }
    /**
     *
     *
     * <pre>
     * externalIPs is a list of IP addresses for which nodes in the cluster
     * will also accept traffic for this service.  These IPs are not managed by
     * Kubernetes.  The user is responsible for ensuring that traffic arrives
     * at a node with this IP.  A common example is external load-balancers
     * that are not part of the Kubernetes system.
     * +optional
     * </pre>
     *
     * <code>repeated string externalIPs = 5;</code>
     */
    public com.google.protobuf.ByteString getExternalIPsBytes(int index) {
      return externalIPs_.getByteString(index);
    }

    public static final int SESSIONAFFINITY_FIELD_NUMBER = 7;
    private volatile java.lang.Object sessionAffinity_;
    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    public boolean hasSessionAffinity() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    public java.lang.String getSessionAffinity() {
      java.lang.Object ref = sessionAffinity_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          sessionAffinity_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Supports "ClientIP" and "None". Used to maintain session affinity.
     * Enable client IP based session affinity.
     * Must be ClientIP or None.
     * Defaults to None.
     * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
     * +optional
     * </pre>
     *
     * <code>optional string sessionAffinity = 7;</code>
     */
    public com.google.protobuf.ByteString getSessionAffinityBytes() {
      java.lang.Object ref = sessionAffinity_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        sessionAffinity_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOADBALANCERIP_FIELD_NUMBER = 8;
    private volatile java.lang.Object loadBalancerIP_;
    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    public boolean hasLoadBalancerIP() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    public java.lang.String getLoadBalancerIP() {
      java.lang.Object ref = loadBalancerIP_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          loadBalancerIP_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Only applies to Service Type: LoadBalancer
     * LoadBalancer will get created with the IP specified in this field.
     * This feature depends on whether the underlying cloud-provider supports specifying
     * the loadBalancerIP when a load balancer is created.
     * This field will be ignored if the cloud-provider does not support the feature.
     * +optional
     * </pre>
     *
     * <code>optional string loadBalancerIP = 8;</code>
     */
    public com.google.protobuf.ByteString getLoadBalancerIPBytes() {
      java.lang.Object ref = loadBalancerIP_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        loadBalancerIP_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int LOADBALANCERSOURCERANGES_FIELD_NUMBER = 9;
    private com.google.protobuf.LazyStringList loadBalancerSourceRanges_;
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    public com.google.protobuf.ProtocolStringList getLoadBalancerSourceRangesList() {
      return loadBalancerSourceRanges_;
    }
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    public int getLoadBalancerSourceRangesCount() {
      return loadBalancerSourceRanges_.size();
    }
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    public java.lang.String getLoadBalancerSourceRanges(int index) {
      return loadBalancerSourceRanges_.get(index);
    }
    /**
     *
     *
     * <pre>
     * If specified and supported by the platform, this will restrict traffic through the cloud-provider
     * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
     * cloud-provider does not support the feature."
     * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
     * +optional
     * </pre>
     *
     * <code>repeated string loadBalancerSourceRanges = 9;</code>
     */
    public com.google.protobuf.ByteString getLoadBalancerSourceRangesBytes(int index) {
      return loadBalancerSourceRanges_.getByteString(index);
    }

    public static final int EXTERNALNAME_FIELD_NUMBER = 10;
    private volatile java.lang.Object externalName_;
    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    public boolean hasExternalName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    public java.lang.String getExternalName() {
      java.lang.Object ref = externalName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          externalName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * externalName is the external reference that kubedns or equivalent will
     * return as a CNAME record for this service. No proxying will be involved.
     * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
     * and requires Type to be ExternalName.
     * +optional
     * </pre>
     *
     * <code>optional string externalName = 10;</code>
     */
    public com.google.protobuf.ByteString getExternalNameBytes() {
      java.lang.Object ref = externalName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        externalName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EXTERNALTRAFFICPOLICY_FIELD_NUMBER = 11;
    private volatile java.lang.Object externalTrafficPolicy_;
    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    public boolean hasExternalTrafficPolicy() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    public java.lang.String getExternalTrafficPolicy() {
      java.lang.Object ref = externalTrafficPolicy_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          externalTrafficPolicy_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * externalTrafficPolicy denotes if this Service desires to route external
     * traffic to node-local or cluster-wide endpoints. "Local" preserves the
     * client source IP and avoids a second hop for LoadBalancer and Nodeport
     * type services, but risks potentially imbalanced traffic spreading.
     * "Cluster" obscures the client source IP and may cause a second hop to
     * another node, but should have good overall load-spreading.
     * +optional
     * </pre>
     *
     * <code>optional string externalTrafficPolicy = 11;</code>
     */
    public com.google.protobuf.ByteString getExternalTrafficPolicyBytes() {
      java.lang.Object ref = externalTrafficPolicy_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        externalTrafficPolicy_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int HEALTHCHECKNODEPORT_FIELD_NUMBER = 12;
    private int healthCheckNodePort_;
    /**
     *
     *
     * <pre>
     * healthCheckNodePort specifies the healthcheck nodePort for the service.
     * If not specified, HealthCheckNodePort is created by the service api
     * backend with the allocated nodePort. Will use user-specified nodePort value
     * if specified by the client. Only effects when Type is set to LoadBalancer
     * and ExternalTrafficPolicy is set to Local.
     * +optional
     * </pre>
     *
     * <code>optional int32 healthCheckNodePort = 12;</code>
     */
    public boolean hasHealthCheckNodePort() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * healthCheckNodePort specifies the healthcheck nodePort for the service.
     * If not specified, HealthCheckNodePort is created by the service api
     * backend with the allocated nodePort. Will use user-specified nodePort value
     * if specified by the client. Only effects when Type is set to LoadBalancer
     * and ExternalTrafficPolicy is set to Local.
     * +optional
     * </pre>
     *
     * <code>optional int32 healthCheckNodePort = 12;</code>
     */
    public int getHealthCheckNodePort() {
      return healthCheckNodePort_;
    }

    public static final int PUBLISHNOTREADYADDRESSES_FIELD_NUMBER = 13;
    private boolean publishNotReadyAddresses_;
    /**
     *
     *
     * <pre>
     * publishNotReadyAddresses, when set to true, indicates that DNS implementations
     * must publish the notReadyAddresses of subsets for the Endpoints associated with
     * the Service. The default value is false.
     * The primary use case for setting this field is to use a StatefulSet's Headless Service
     * to propagate SRV records for its Pods without respect to their readiness for purpose
     * of peer discovery.
     * +optional
     * </pre>
     *
     * <code>optional bool publishNotReadyAddresses = 13;</code>
     */
    public boolean hasPublishNotReadyAddresses() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * publishNotReadyAddresses, when set to true, indicates that DNS implementations
     * must publish the notReadyAddresses of subsets for the Endpoints associated with
     * the Service. The default value is false.
     * The primary use case for setting this field is to use a StatefulSet's Headless Service
     * to propagate SRV records for its Pods without respect to their readiness for purpose
     * of peer discovery.
     * +optional
     * </pre>
     *
     * <code>optional bool publishNotReadyAddresses = 13;</code>
     */
    public boolean getPublishNotReadyAddresses() {
      return publishNotReadyAddresses_;
    }

    public static final int SESSIONAFFINITYCONFIG_FIELD_NUMBER = 14;
    private io.kubernetes.client.proto.V1.SessionAffinityConfig sessionAffinityConfig_;
    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    public boolean hasSessionAffinityConfig() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    public io.kubernetes.client.proto.V1.SessionAffinityConfig getSessionAffinityConfig() {
      return sessionAffinityConfig_ == null
          ? io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance()
          : sessionAffinityConfig_;
    }
    /**
     *
     *
     * <pre>
     * sessionAffinityConfig contains the configurations of session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
     * </code>
     */
    public io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder
        getSessionAffinityConfigOrBuilder() {
      return sessionAffinityConfig_ == null
          ? io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance()
          : sessionAffinityConfig_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < ports_.size(); i++) {
        output.writeMessage(1, ports_.get(i));
      }
      com.google.protobuf.GeneratedMessageV3.serializeStringMapTo(
          output, internalGetSelector(), SelectorDefaultEntryHolder.defaultEntry, 2);
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, clusterIP_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, type_);
      }
      for (int i = 0; i < externalIPs_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, externalIPs_.getRaw(i));
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 7, sessionAffinity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 8, loadBalancerIP_);
      }
      for (int i = 0; i < loadBalancerSourceRanges_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(
            output, 9, loadBalancerSourceRanges_.getRaw(i));
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 10, externalName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 11, externalTrafficPolicy_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(12, healthCheckNodePort_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(13, publishNotReadyAddresses_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(14, getSessionAffinityConfig());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < ports_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, ports_.get(i));
      }
      for (java.util.Map.Entry<java.lang.String, java.lang.String> entry :
          internalGetSelector().getMap().entrySet()) {
        com.google.protobuf.MapEntry<java.lang.String, java.lang.String> selector__ =
            SelectorDefaultEntryHolder.defaultEntry
                .newBuilderForType()
                .setKey(entry.getKey())
                .setValue(entry.getValue())
                .build();
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, selector__);
      }
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, clusterIP_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, type_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < externalIPs_.size(); i++) {
          dataSize += computeStringSizeNoTag(externalIPs_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getExternalIPsList().size();
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(7, sessionAffinity_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(8, loadBalancerIP_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < loadBalancerSourceRanges_.size(); i++) {
          dataSize += computeStringSizeNoTag(loadBalancerSourceRanges_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getLoadBalancerSourceRangesList().size();
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(10, externalName_);
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size +=
            com.google.protobuf.GeneratedMessageV3.computeStringSize(11, externalTrafficPolicy_);
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(12, healthCheckNodePort_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeBoolSize(13, publishNotReadyAddresses_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                14, getSessionAffinityConfig());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceSpec)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceSpec other =
          (io.kubernetes.client.proto.V1.ServiceSpec) obj;

      boolean result = true;
      result = result && getPortsList().equals(other.getPortsList());
      result = result && internalGetSelector().equals(other.internalGetSelector());
      result = result && (hasClusterIP() == other.hasClusterIP());
      if (hasClusterIP()) {
        result = result && getClusterIP().equals(other.getClusterIP());
      }
      result = result && (hasType() == other.hasType());
      if (hasType()) {
        result = result && getType().equals(other.getType());
      }
      result = result && getExternalIPsList().equals(other.getExternalIPsList());
      result = result && (hasSessionAffinity() == other.hasSessionAffinity());
      if (hasSessionAffinity()) {
        result = result && getSessionAffinity().equals(other.getSessionAffinity());
      }
      result = result && (hasLoadBalancerIP() == other.hasLoadBalancerIP());
      if (hasLoadBalancerIP()) {
        result = result && getLoadBalancerIP().equals(other.getLoadBalancerIP());
      }
      result =
          result
              && getLoadBalancerSourceRangesList().equals(other.getLoadBalancerSourceRangesList());
      result = result && (hasExternalName() == other.hasExternalName());
      if (hasExternalName()) {
        result = result && getExternalName().equals(other.getExternalName());
      }
      result = result && (hasExternalTrafficPolicy() == other.hasExternalTrafficPolicy());
      if (hasExternalTrafficPolicy()) {
        result = result && getExternalTrafficPolicy().equals(other.getExternalTrafficPolicy());
      }
      result = result && (hasHealthCheckNodePort() == other.hasHealthCheckNodePort());
      if (hasHealthCheckNodePort()) {
        result = result && (getHealthCheckNodePort() == other.getHealthCheckNodePort());
      }
      result = result && (hasPublishNotReadyAddresses() == other.hasPublishNotReadyAddresses());
      if (hasPublishNotReadyAddresses()) {
        result = result && (getPublishNotReadyAddresses() == other.getPublishNotReadyAddresses());
      }
      result = result && (hasSessionAffinityConfig() == other.hasSessionAffinityConfig());
      if (hasSessionAffinityConfig()) {
        result = result && getSessionAffinityConfig().equals(other.getSessionAffinityConfig());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getPortsCount() > 0) {
        hash = (37 * hash) + PORTS_FIELD_NUMBER;
        hash = (53 * hash) + getPortsList().hashCode();
      }
      if (!internalGetSelector().getMap().isEmpty()) {
        hash = (37 * hash) + SELECTOR_FIELD_NUMBER;
        hash = (53 * hash) + internalGetSelector().hashCode();
      }
      if (hasClusterIP()) {
        hash = (37 * hash) + CLUSTERIP_FIELD_NUMBER;
        hash = (53 * hash) + getClusterIP().hashCode();
      }
      if (hasType()) {
        hash = (37 * hash) + TYPE_FIELD_NUMBER;
        hash = (53 * hash) + getType().hashCode();
      }
      if (getExternalIPsCount() > 0) {
        hash = (37 * hash) + EXTERNALIPS_FIELD_NUMBER;
        hash = (53 * hash) + getExternalIPsList().hashCode();
      }
      if (hasSessionAffinity()) {
        hash = (37 * hash) + SESSIONAFFINITY_FIELD_NUMBER;
        hash = (53 * hash) + getSessionAffinity().hashCode();
      }
      if (hasLoadBalancerIP()) {
        hash = (37 * hash) + LOADBALANCERIP_FIELD_NUMBER;
        hash = (53 * hash) + getLoadBalancerIP().hashCode();
      }
      if (getLoadBalancerSourceRangesCount() > 0) {
        hash = (37 * hash) + LOADBALANCERSOURCERANGES_FIELD_NUMBER;
        hash = (53 * hash) + getLoadBalancerSourceRangesList().hashCode();
      }
      if (hasExternalName()) {
        hash = (37 * hash) + EXTERNALNAME_FIELD_NUMBER;
        hash = (53 * hash) + getExternalName().hashCode();
      }
      if (hasExternalTrafficPolicy()) {
        hash = (37 * hash) + EXTERNALTRAFFICPOLICY_FIELD_NUMBER;
        hash = (53 * hash) + getExternalTrafficPolicy().hashCode();
      }
      if (hasHealthCheckNodePort()) {
        hash = (37 * hash) + HEALTHCHECKNODEPORT_FIELD_NUMBER;
        hash = (53 * hash) + getHealthCheckNodePort();
      }
      if (hasPublishNotReadyAddresses()) {
        hash = (37 * hash) + PUBLISHNOTREADYADDRESSES_FIELD_NUMBER;
        hash =
            (53 * hash) + com.google.protobuf.Internal.hashBoolean(getPublishNotReadyAddresses());
      }
      if (hasSessionAffinityConfig()) {
        hash = (37 * hash) + SESSIONAFFINITYCONFIG_FIELD_NUMBER;
        hash = (53 * hash) + getSessionAffinityConfig().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceSpec prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceSpec describes the attributes that a user creates on a service.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceSpec}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceSpec)
        io.kubernetes.client.proto.V1.ServiceSpecOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor;
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMapField(int number) {
        switch (number) {
          case 2:
            return internalGetSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @SuppressWarnings({"rawtypes"})
      protected com.google.protobuf.MapField internalGetMutableMapField(int number) {
        switch (number) {
          case 2:
            return internalGetMutableSelector();
          default:
            throw new RuntimeException("Invalid map field number: " + number);
        }
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceSpec_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceSpec.class,
                io.kubernetes.client.proto.V1.ServiceSpec.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceSpec.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPortsFieldBuilder();
          getSessionAffinityConfigFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          portsBuilder_.clear();
        }
        internalGetMutableSelector().clear();
        clusterIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        type_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        externalIPs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        sessionAffinity_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        loadBalancerIP_ = "";
        bitField0_ = (bitField0_ & ~0x00000040);
        loadBalancerSourceRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        externalName_ = "";
        bitField0_ = (bitField0_ & ~0x00000100);
        externalTrafficPolicy_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        healthCheckNodePort_ = 0;
        bitField0_ = (bitField0_ & ~0x00000400);
        publishNotReadyAddresses_ = false;
        bitField0_ = (bitField0_ & ~0x00000800);
        if (sessionAffinityConfigBuilder_ == null) {
          sessionAffinityConfig_ = null;
        } else {
          sessionAffinityConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceSpec getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceSpec build() {
        io.kubernetes.client.proto.V1.ServiceSpec result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceSpec buildPartial() {
        io.kubernetes.client.proto.V1.ServiceSpec result =
            new io.kubernetes.client.proto.V1.ServiceSpec(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (portsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            ports_ = java.util.Collections.unmodifiableList(ports_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.ports_ = ports_;
        } else {
          result.ports_ = portsBuilder_.build();
        }
        result.selector_ = internalGetSelector();
        result.selector_.makeImmutable();
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000001;
        }
        result.clusterIP_ = clusterIP_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000002;
        }
        result.type_ = type_;
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          externalIPs_ = externalIPs_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000010);
        }
        result.externalIPs_ = externalIPs_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000004;
        }
        result.sessionAffinity_ = sessionAffinity_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000008;
        }
        result.loadBalancerIP_ = loadBalancerIP_;
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          loadBalancerSourceRanges_ = loadBalancerSourceRanges_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000080);
        }
        result.loadBalancerSourceRanges_ = loadBalancerSourceRanges_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000010;
        }
        result.externalName_ = externalName_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000020;
        }
        result.externalTrafficPolicy_ = externalTrafficPolicy_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000040;
        }
        result.healthCheckNodePort_ = healthCheckNodePort_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000080;
        }
        result.publishNotReadyAddresses_ = publishNotReadyAddresses_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00000100;
        }
        if (sessionAffinityConfigBuilder_ == null) {
          result.sessionAffinityConfig_ = sessionAffinityConfig_;
        } else {
          result.sessionAffinityConfig_ = sessionAffinityConfigBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceSpec) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceSpec) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceSpec other) {
        if (other == io.kubernetes.client.proto.V1.ServiceSpec.getDefaultInstance()) return this;
        if (portsBuilder_ == null) {
          if (!other.ports_.isEmpty()) {
            if (ports_.isEmpty()) {
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensurePortsIsMutable();
              ports_.addAll(other.ports_);
            }
            onChanged();
          }
        } else {
          if (!other.ports_.isEmpty()) {
            if (portsBuilder_.isEmpty()) {
              portsBuilder_.dispose();
              portsBuilder_ = null;
              ports_ = other.ports_;
              bitField0_ = (bitField0_ & ~0x00000001);
              portsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getPortsFieldBuilder()
                      : null;
            } else {
              portsBuilder_.addAllMessages(other.ports_);
            }
          }
        }
        internalGetMutableSelector().mergeFrom(other.internalGetSelector());
        if (other.hasClusterIP()) {
          bitField0_ |= 0x00000004;
          clusterIP_ = other.clusterIP_;
          onChanged();
        }
        if (other.hasType()) {
          bitField0_ |= 0x00000008;
          type_ = other.type_;
          onChanged();
        }
        if (!other.externalIPs_.isEmpty()) {
          if (externalIPs_.isEmpty()) {
            externalIPs_ = other.externalIPs_;
            bitField0_ = (bitField0_ & ~0x00000010);
          } else {
            ensureExternalIPsIsMutable();
            externalIPs_.addAll(other.externalIPs_);
          }
          onChanged();
        }
        if (other.hasSessionAffinity()) {
          bitField0_ |= 0x00000020;
          sessionAffinity_ = other.sessionAffinity_;
          onChanged();
        }
        if (other.hasLoadBalancerIP()) {
          bitField0_ |= 0x00000040;
          loadBalancerIP_ = other.loadBalancerIP_;
          onChanged();
        }
        if (!other.loadBalancerSourceRanges_.isEmpty()) {
          if (loadBalancerSourceRanges_.isEmpty()) {
            loadBalancerSourceRanges_ = other.loadBalancerSourceRanges_;
            bitField0_ = (bitField0_ & ~0x00000080);
          } else {
            ensureLoadBalancerSourceRangesIsMutable();
            loadBalancerSourceRanges_.addAll(other.loadBalancerSourceRanges_);
          }
          onChanged();
        }
        if (other.hasExternalName()) {
          bitField0_ |= 0x00000100;
          externalName_ = other.externalName_;
          onChanged();
        }
        if (other.hasExternalTrafficPolicy()) {
          bitField0_ |= 0x00000200;
          externalTrafficPolicy_ = other.externalTrafficPolicy_;
          onChanged();
        }
        if (other.hasHealthCheckNodePort()) {
          setHealthCheckNodePort(other.getHealthCheckNodePort());
        }
        if (other.hasPublishNotReadyAddresses()) {
          setPublishNotReadyAddresses(other.getPublishNotReadyAddresses());
        }
        if (other.hasSessionAffinityConfig()) {
          mergeSessionAffinityConfig(other.getSessionAffinityConfig());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceSpec parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ServiceSpec) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.ServicePort> ports_ =
          java.util.Collections.emptyList();

      private void ensurePortsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          ports_ = new java.util.ArrayList<io.kubernetes.client.proto.V1.ServicePort>(ports_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServicePort,
              io.kubernetes.client.proto.V1.ServicePort.Builder,
              io.kubernetes.client.proto.V1.ServicePortOrBuilder>
          portsBuilder_;

      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ServicePort> getPortsList() {
        if (portsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(ports_);
        } else {
          return portsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public int getPortsCount() {
        if (portsBuilder_ == null) {
          return ports_.size();
        } else {
          return portsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ServicePort getPorts(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder setPorts(int index, io.kubernetes.client.proto.V1.ServicePort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.set(index, value);
          onChanged();
        } else {
          portsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder setPorts(
          int index, io.kubernetes.client.proto.V1.ServicePort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.set(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.ServicePort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(value);
          onChanged();
        } else {
          portsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder addPorts(int index, io.kubernetes.client.proto.V1.ServicePort value) {
        if (portsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensurePortsIsMutable();
          ports_.add(index, value);
          onChanged();
        } else {
          portsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder addPorts(io.kubernetes.client.proto.V1.ServicePort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder addPorts(
          int index, io.kubernetes.client.proto.V1.ServicePort.Builder builderForValue) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.add(index, builderForValue.build());
          onChanged();
        } else {
          portsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder addAllPorts(
          java.lang.Iterable<? extends io.kubernetes.client.proto.V1.ServicePort> values) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, ports_);
          onChanged();
        } else {
          portsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder clearPorts() {
        if (portsBuilder_ == null) {
          ports_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          portsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public Builder removePorts(int index) {
        if (portsBuilder_ == null) {
          ensurePortsIsMutable();
          ports_.remove(index);
          onChanged();
        } else {
          portsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ServicePort.Builder getPortsBuilder(int index) {
        return getPortsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ServicePortOrBuilder getPortsOrBuilder(int index) {
        if (portsBuilder_ == null) {
          return ports_.get(index);
        } else {
          return portsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public java.util.List<? extends io.kubernetes.client.proto.V1.ServicePortOrBuilder>
          getPortsOrBuilderList() {
        if (portsBuilder_ != null) {
          return portsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(ports_);
        }
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ServicePort.Builder addPortsBuilder() {
        return getPortsFieldBuilder()
            .addBuilder(io.kubernetes.client.proto.V1.ServicePort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ServicePort.Builder addPortsBuilder(int index) {
        return getPortsFieldBuilder()
            .addBuilder(index, io.kubernetes.client.proto.V1.ServicePort.getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * The list of ports that are exposed by this service.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +patchMergeKey=port
       * +patchStrategy=merge
       * </pre>
       *
       * <code>repeated .k8s.io.api.core.v1.ServicePort ports = 1;</code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.ServicePort.Builder>
          getPortsBuilderList() {
        return getPortsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServicePort,
              io.kubernetes.client.proto.V1.ServicePort.Builder,
              io.kubernetes.client.proto.V1.ServicePortOrBuilder>
          getPortsFieldBuilder() {
        if (portsBuilder_ == null) {
          portsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ServicePort,
                  io.kubernetes.client.proto.V1.ServicePort.Builder,
                  io.kubernetes.client.proto.V1.ServicePortOrBuilder>(
                  ports_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          ports_ = null;
        }
        return portsBuilder_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String> selector_;

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetSelector() {
        if (selector_ == null) {
          return com.google.protobuf.MapField.emptyMapField(
              SelectorDefaultEntryHolder.defaultEntry);
        }
        return selector_;
      }

      private com.google.protobuf.MapField<java.lang.String, java.lang.String>
          internalGetMutableSelector() {
        onChanged();
        ;
        if (selector_ == null) {
          selector_ =
              com.google.protobuf.MapField.newMapField(SelectorDefaultEntryHolder.defaultEntry);
        }
        if (!selector_.isMutable()) {
          selector_ = selector_.copy();
        }
        return selector_;
      }

      public int getSelectorCount() {
        return internalGetSelector().getMap().size();
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public boolean containsSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        return internalGetSelector().getMap().containsKey(key);
      }
      /** Use {@link #getSelectorMap()} instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getSelector() {
        return getSelectorMap();
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.util.Map<java.lang.String, java.lang.String> getSelectorMap() {
        return internalGetSelector().getMap();
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.lang.String getSelectorOrDefault(
          java.lang.String key, java.lang.String defaultValue) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
        return map.containsKey(key) ? map.get(key) : defaultValue;
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public java.lang.String getSelectorOrThrow(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        java.util.Map<java.lang.String, java.lang.String> map = internalGetSelector().getMap();
        if (!map.containsKey(key)) {
          throw new java.lang.IllegalArgumentException();
        }
        return map.get(key);
      }

      public Builder clearSelector() {
        internalGetMutableSelector().getMutableMap().clear();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder removeSelector(java.lang.String key) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableSelector().getMutableMap().remove(key);
        return this;
      }
      /** Use alternate mutation accessors instead. */
      @java.lang.Deprecated
      public java.util.Map<java.lang.String, java.lang.String> getMutableSelector() {
        return internalGetMutableSelector().getMutableMap();
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder putSelector(java.lang.String key, java.lang.String value) {
        if (key == null) {
          throw new java.lang.NullPointerException();
        }
        if (value == null) {
          throw new java.lang.NullPointerException();
        }
        internalGetMutableSelector().getMutableMap().put(key, value);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Route service traffic to pods with label keys and values matching this
       * selector. If empty or not present, the service is assumed to have an
       * external process managing its endpoints, which Kubernetes will not
       * modify. Only applies to types ClusterIP, NodePort, and LoadBalancer.
       * Ignored if type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/
       * +optional
       * </pre>
       *
       * <code>map&lt;string, string&gt; selector = 2;</code>
       */
      public Builder putAllSelector(java.util.Map<java.lang.String, java.lang.String> values) {
        internalGetMutableSelector().getMutableMap().putAll(values);
        return this;
      }

      private java.lang.Object clusterIP_ = "";
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public boolean hasClusterIP() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public java.lang.String getClusterIP() {
        java.lang.Object ref = clusterIP_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clusterIP_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public com.google.protobuf.ByteString getClusterIPBytes() {
        java.lang.Object ref = clusterIP_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          clusterIP_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public Builder setClusterIP(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        clusterIP_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public Builder clearClusterIP() {
        bitField0_ = (bitField0_ & ~0x00000004);
        clusterIP_ = getDefaultInstance().getClusterIP();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * clusterIP is the IP address of the service and is usually assigned
       * randomly by the master. If an address is specified manually and is not in
       * use by others, it will be allocated to the service; otherwise, creation
       * of the service will fail. This field can not be changed through updates.
       * Valid values are "None", empty string (""), or a valid IP address. "None"
       * can be specified for headless services when proxying is not required.
       * Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if
       * type is ExternalName.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string clusterIP = 3;</code>
       */
      public Builder setClusterIPBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        clusterIP_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object type_ = "";
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public boolean hasType() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public java.lang.String getType() {
        java.lang.Object ref = type_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            type_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public com.google.protobuf.ByteString getTypeBytes() {
        java.lang.Object ref = type_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          type_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public Builder setType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        type_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public Builder clearType() {
        bitField0_ = (bitField0_ & ~0x00000008);
        type_ = getDefaultInstance().getType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * type determines how the Service is exposed. Defaults to ClusterIP. Valid
       * options are ExternalName, ClusterIP, NodePort, and LoadBalancer.
       * "ExternalName" maps to the specified externalName.
       * "ClusterIP" allocates a cluster-internal IP address for load-balancing to
       * endpoints. Endpoints are determined by the selector or if that is not
       * specified, by manual construction of an Endpoints object. If clusterIP is
       * "None", no virtual IP is allocated and the endpoints are published as a
       * set of endpoints rather than a stable IP.
       * "NodePort" builds on ClusterIP and allocates a port on every node which
       * routes to the clusterIP.
       * "LoadBalancer" builds on NodePort and creates an
       * external load-balancer (if supported in the current cloud) which routes
       * to the clusterIP.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services---service-types
       * +optional
       * </pre>
       *
       * <code>optional string type = 4;</code>
       */
      public Builder setTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        type_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList externalIPs_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureExternalIPsIsMutable() {
        if (!((bitField0_ & 0x00000010) == 0x00000010)) {
          externalIPs_ = new com.google.protobuf.LazyStringArrayList(externalIPs_);
          bitField0_ |= 0x00000010;
        }
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public com.google.protobuf.ProtocolStringList getExternalIPsList() {
        return externalIPs_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public int getExternalIPsCount() {
        return externalIPs_.size();
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public java.lang.String getExternalIPs(int index) {
        return externalIPs_.get(index);
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public com.google.protobuf.ByteString getExternalIPsBytes(int index) {
        return externalIPs_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public Builder setExternalIPs(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureExternalIPsIsMutable();
        externalIPs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public Builder addExternalIPs(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureExternalIPsIsMutable();
        externalIPs_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public Builder addAllExternalIPs(java.lang.Iterable<java.lang.String> values) {
        ensureExternalIPsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, externalIPs_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public Builder clearExternalIPs() {
        externalIPs_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000010);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalIPs is a list of IP addresses for which nodes in the cluster
       * will also accept traffic for this service.  These IPs are not managed by
       * Kubernetes.  The user is responsible for ensuring that traffic arrives
       * at a node with this IP.  A common example is external load-balancers
       * that are not part of the Kubernetes system.
       * +optional
       * </pre>
       *
       * <code>repeated string externalIPs = 5;</code>
       */
      public Builder addExternalIPsBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureExternalIPsIsMutable();
        externalIPs_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object sessionAffinity_ = "";
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public boolean hasSessionAffinity() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public java.lang.String getSessionAffinity() {
        java.lang.Object ref = sessionAffinity_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            sessionAffinity_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public com.google.protobuf.ByteString getSessionAffinityBytes() {
        java.lang.Object ref = sessionAffinity_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          sessionAffinity_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public Builder setSessionAffinity(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        sessionAffinity_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public Builder clearSessionAffinity() {
        bitField0_ = (bitField0_ & ~0x00000020);
        sessionAffinity_ = getDefaultInstance().getSessionAffinity();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Supports "ClientIP" and "None". Used to maintain session affinity.
       * Enable client IP based session affinity.
       * Must be ClientIP or None.
       * Defaults to None.
       * More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
       * +optional
       * </pre>
       *
       * <code>optional string sessionAffinity = 7;</code>
       */
      public Builder setSessionAffinityBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000020;
        sessionAffinity_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object loadBalancerIP_ = "";
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public boolean hasLoadBalancerIP() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public java.lang.String getLoadBalancerIP() {
        java.lang.Object ref = loadBalancerIP_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            loadBalancerIP_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public com.google.protobuf.ByteString getLoadBalancerIPBytes() {
        java.lang.Object ref = loadBalancerIP_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          loadBalancerIP_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public Builder setLoadBalancerIP(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        loadBalancerIP_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public Builder clearLoadBalancerIP() {
        bitField0_ = (bitField0_ & ~0x00000040);
        loadBalancerIP_ = getDefaultInstance().getLoadBalancerIP();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Only applies to Service Type: LoadBalancer
       * LoadBalancer will get created with the IP specified in this field.
       * This feature depends on whether the underlying cloud-provider supports specifying
       * the loadBalancerIP when a load balancer is created.
       * This field will be ignored if the cloud-provider does not support the feature.
       * +optional
       * </pre>
       *
       * <code>optional string loadBalancerIP = 8;</code>
       */
      public Builder setLoadBalancerIPBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000040;
        loadBalancerIP_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList loadBalancerSourceRanges_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureLoadBalancerSourceRangesIsMutable() {
        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
          loadBalancerSourceRanges_ =
              new com.google.protobuf.LazyStringArrayList(loadBalancerSourceRanges_);
          bitField0_ |= 0x00000080;
        }
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public com.google.protobuf.ProtocolStringList getLoadBalancerSourceRangesList() {
        return loadBalancerSourceRanges_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public int getLoadBalancerSourceRangesCount() {
        return loadBalancerSourceRanges_.size();
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public java.lang.String getLoadBalancerSourceRanges(int index) {
        return loadBalancerSourceRanges_.get(index);
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public com.google.protobuf.ByteString getLoadBalancerSourceRangesBytes(int index) {
        return loadBalancerSourceRanges_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public Builder setLoadBalancerSourceRanges(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureLoadBalancerSourceRangesIsMutable();
        loadBalancerSourceRanges_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public Builder addLoadBalancerSourceRanges(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureLoadBalancerSourceRangesIsMutable();
        loadBalancerSourceRanges_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public Builder addAllLoadBalancerSourceRanges(java.lang.Iterable<java.lang.String> values) {
        ensureLoadBalancerSourceRangesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, loadBalancerSourceRanges_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public Builder clearLoadBalancerSourceRanges() {
        loadBalancerSourceRanges_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000080);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * If specified and supported by the platform, this will restrict traffic through the cloud-provider
       * load-balancer will be restricted to the specified client IPs. This field will be ignored if the
       * cloud-provider does not support the feature."
       * More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
       * +optional
       * </pre>
       *
       * <code>repeated string loadBalancerSourceRanges = 9;</code>
       */
      public Builder addLoadBalancerSourceRangesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureLoadBalancerSourceRangesIsMutable();
        loadBalancerSourceRanges_.add(value);
        onChanged();
        return this;
      }

      private java.lang.Object externalName_ = "";
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public boolean hasExternalName() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public java.lang.String getExternalName() {
        java.lang.Object ref = externalName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            externalName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public com.google.protobuf.ByteString getExternalNameBytes() {
        java.lang.Object ref = externalName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          externalName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public Builder setExternalName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        externalName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public Builder clearExternalName() {
        bitField0_ = (bitField0_ & ~0x00000100);
        externalName_ = getDefaultInstance().getExternalName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalName is the external reference that kubedns or equivalent will
       * return as a CNAME record for this service. No proxying will be involved.
       * Must be a valid RFC-1123 hostname (https://tools.ietf.org/html/rfc1123)
       * and requires Type to be ExternalName.
       * +optional
       * </pre>
       *
       * <code>optional string externalName = 10;</code>
       */
      public Builder setExternalNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000100;
        externalName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object externalTrafficPolicy_ = "";
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public boolean hasExternalTrafficPolicy() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public java.lang.String getExternalTrafficPolicy() {
        java.lang.Object ref = externalTrafficPolicy_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            externalTrafficPolicy_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public com.google.protobuf.ByteString getExternalTrafficPolicyBytes() {
        java.lang.Object ref = externalTrafficPolicy_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          externalTrafficPolicy_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public Builder setExternalTrafficPolicy(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        externalTrafficPolicy_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public Builder clearExternalTrafficPolicy() {
        bitField0_ = (bitField0_ & ~0x00000200);
        externalTrafficPolicy_ = getDefaultInstance().getExternalTrafficPolicy();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * externalTrafficPolicy denotes if this Service desires to route external
       * traffic to node-local or cluster-wide endpoints. "Local" preserves the
       * client source IP and avoids a second hop for LoadBalancer and Nodeport
       * type services, but risks potentially imbalanced traffic spreading.
       * "Cluster" obscures the client source IP and may cause a second hop to
       * another node, but should have good overall load-spreading.
       * +optional
       * </pre>
       *
       * <code>optional string externalTrafficPolicy = 11;</code>
       */
      public Builder setExternalTrafficPolicyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000200;
        externalTrafficPolicy_ = value;
        onChanged();
        return this;
      }

      private int healthCheckNodePort_;
      /**
       *
       *
       * <pre>
       * healthCheckNodePort specifies the healthcheck nodePort for the service.
       * If not specified, HealthCheckNodePort is created by the service api
       * backend with the allocated nodePort. Will use user-specified nodePort value
       * if specified by the client. Only effects when Type is set to LoadBalancer
       * and ExternalTrafficPolicy is set to Local.
       * +optional
       * </pre>
       *
       * <code>optional int32 healthCheckNodePort = 12;</code>
       */
      public boolean hasHealthCheckNodePort() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * healthCheckNodePort specifies the healthcheck nodePort for the service.
       * If not specified, HealthCheckNodePort is created by the service api
       * backend with the allocated nodePort. Will use user-specified nodePort value
       * if specified by the client. Only effects when Type is set to LoadBalancer
       * and ExternalTrafficPolicy is set to Local.
       * +optional
       * </pre>
       *
       * <code>optional int32 healthCheckNodePort = 12;</code>
       */
      public int getHealthCheckNodePort() {
        return healthCheckNodePort_;
      }
      /**
       *
       *
       * <pre>
       * healthCheckNodePort specifies the healthcheck nodePort for the service.
       * If not specified, HealthCheckNodePort is created by the service api
       * backend with the allocated nodePort. Will use user-specified nodePort value
       * if specified by the client. Only effects when Type is set to LoadBalancer
       * and ExternalTrafficPolicy is set to Local.
       * +optional
       * </pre>
       *
       * <code>optional int32 healthCheckNodePort = 12;</code>
       */
      public Builder setHealthCheckNodePort(int value) {
        bitField0_ |= 0x00000400;
        healthCheckNodePort_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * healthCheckNodePort specifies the healthcheck nodePort for the service.
       * If not specified, HealthCheckNodePort is created by the service api
       * backend with the allocated nodePort. Will use user-specified nodePort value
       * if specified by the client. Only effects when Type is set to LoadBalancer
       * and ExternalTrafficPolicy is set to Local.
       * +optional
       * </pre>
       *
       * <code>optional int32 healthCheckNodePort = 12;</code>
       */
      public Builder clearHealthCheckNodePort() {
        bitField0_ = (bitField0_ & ~0x00000400);
        healthCheckNodePort_ = 0;
        onChanged();
        return this;
      }

      private boolean publishNotReadyAddresses_;
      /**
       *
       *
       * <pre>
       * publishNotReadyAddresses, when set to true, indicates that DNS implementations
       * must publish the notReadyAddresses of subsets for the Endpoints associated with
       * the Service. The default value is false.
       * The primary use case for setting this field is to use a StatefulSet's Headless Service
       * to propagate SRV records for its Pods without respect to their readiness for purpose
       * of peer discovery.
       * +optional
       * </pre>
       *
       * <code>optional bool publishNotReadyAddresses = 13;</code>
       */
      public boolean hasPublishNotReadyAddresses() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * publishNotReadyAddresses, when set to true, indicates that DNS implementations
       * must publish the notReadyAddresses of subsets for the Endpoints associated with
       * the Service. The default value is false.
       * The primary use case for setting this field is to use a StatefulSet's Headless Service
       * to propagate SRV records for its Pods without respect to their readiness for purpose
       * of peer discovery.
       * +optional
       * </pre>
       *
       * <code>optional bool publishNotReadyAddresses = 13;</code>
       */
      public boolean getPublishNotReadyAddresses() {
        return publishNotReadyAddresses_;
      }
      /**
       *
       *
       * <pre>
       * publishNotReadyAddresses, when set to true, indicates that DNS implementations
       * must publish the notReadyAddresses of subsets for the Endpoints associated with
       * the Service. The default value is false.
       * The primary use case for setting this field is to use a StatefulSet's Headless Service
       * to propagate SRV records for its Pods without respect to their readiness for purpose
       * of peer discovery.
       * +optional
       * </pre>
       *
       * <code>optional bool publishNotReadyAddresses = 13;</code>
       */
      public Builder setPublishNotReadyAddresses(boolean value) {
        bitField0_ |= 0x00000800;
        publishNotReadyAddresses_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * publishNotReadyAddresses, when set to true, indicates that DNS implementations
       * must publish the notReadyAddresses of subsets for the Endpoints associated with
       * the Service. The default value is false.
       * The primary use case for setting this field is to use a StatefulSet's Headless Service
       * to propagate SRV records for its Pods without respect to their readiness for purpose
       * of peer discovery.
       * +optional
       * </pre>
       *
       * <code>optional bool publishNotReadyAddresses = 13;</code>
       */
      public Builder clearPublishNotReadyAddresses() {
        bitField0_ = (bitField0_ & ~0x00000800);
        publishNotReadyAddresses_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.SessionAffinityConfig sessionAffinityConfig_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SessionAffinityConfig,
              io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder,
              io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder>
          sessionAffinityConfigBuilder_;
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public boolean hasSessionAffinityConfig() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SessionAffinityConfig getSessionAffinityConfig() {
        if (sessionAffinityConfigBuilder_ == null) {
          return sessionAffinityConfig_ == null
              ? io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance()
              : sessionAffinityConfig_;
        } else {
          return sessionAffinityConfigBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public Builder setSessionAffinityConfig(
          io.kubernetes.client.proto.V1.SessionAffinityConfig value) {
        if (sessionAffinityConfigBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          sessionAffinityConfig_ = value;
          onChanged();
        } else {
          sessionAffinityConfigBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public Builder setSessionAffinityConfig(
          io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder builderForValue) {
        if (sessionAffinityConfigBuilder_ == null) {
          sessionAffinityConfig_ = builderForValue.build();
          onChanged();
        } else {
          sessionAffinityConfigBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public Builder mergeSessionAffinityConfig(
          io.kubernetes.client.proto.V1.SessionAffinityConfig value) {
        if (sessionAffinityConfigBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && sessionAffinityConfig_ != null
              && sessionAffinityConfig_
                  != io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance()) {
            sessionAffinityConfig_ =
                io.kubernetes.client.proto.V1.SessionAffinityConfig.newBuilder(
                        sessionAffinityConfig_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            sessionAffinityConfig_ = value;
          }
          onChanged();
        } else {
          sessionAffinityConfigBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public Builder clearSessionAffinityConfig() {
        if (sessionAffinityConfigBuilder_ == null) {
          sessionAffinityConfig_ = null;
          onChanged();
        } else {
          sessionAffinityConfigBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder
          getSessionAffinityConfigBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getSessionAffinityConfigFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      public io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder
          getSessionAffinityConfigOrBuilder() {
        if (sessionAffinityConfigBuilder_ != null) {
          return sessionAffinityConfigBuilder_.getMessageOrBuilder();
        } else {
          return sessionAffinityConfig_ == null
              ? io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance()
              : sessionAffinityConfig_;
        }
      }
      /**
       *
       *
       * <pre>
       * sessionAffinityConfig contains the configurations of session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SessionAffinityConfig sessionAffinityConfig = 14;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SessionAffinityConfig,
              io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder,
              io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder>
          getSessionAffinityConfigFieldBuilder() {
        if (sessionAffinityConfigBuilder_ == null) {
          sessionAffinityConfigBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SessionAffinityConfig,
                  io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder,
                  io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder>(
                  getSessionAffinityConfig(), getParentForChildren(), isClean());
          sessionAffinityConfig_ = null;
        }
        return sessionAffinityConfigBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceSpec)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceSpec)
    private static final io.kubernetes.client.proto.V1.ServiceSpec DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceSpec();
    }

    public static io.kubernetes.client.proto.V1.ServiceSpec getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceSpec> PARSER =
        new com.google.protobuf.AbstractParser<ServiceSpec>() {
          @java.lang.Override
          public ServiceSpec parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceSpec(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceSpec> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceSpec> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceSpec getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface ServiceStatusOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.ServiceStatus)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    boolean hasLoadBalancer();
    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    io.kubernetes.client.proto.V1.LoadBalancerStatus getLoadBalancer();
    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder getLoadBalancerOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * ServiceStatus represents the current status of a service.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.ServiceStatus}
   */
  public static final class ServiceStatus extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.ServiceStatus)
      ServiceStatusOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use ServiceStatus.newBuilder() to construct.
    private ServiceStatus(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private ServiceStatus() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private ServiceStatus(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = loadBalancer_.toBuilder();
                }
                loadBalancer_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LoadBalancerStatus.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(loadBalancer_);
                  loadBalancer_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_ServiceStatus_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.ServiceStatus.class,
              io.kubernetes.client.proto.V1.ServiceStatus.Builder.class);
    }

    private int bitField0_;
    public static final int LOADBALANCER_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.LoadBalancerStatus loadBalancer_;
    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    public boolean hasLoadBalancer() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LoadBalancerStatus getLoadBalancer() {
      return loadBalancer_ == null
          ? io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance()
          : loadBalancer_;
    }
    /**
     *
     *
     * <pre>
     * LoadBalancer contains the current status of the load-balancer,
     * if one is present.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
     */
    public io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder getLoadBalancerOrBuilder() {
      return loadBalancer_ == null
          ? io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance()
          : loadBalancer_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getLoadBalancer());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getLoadBalancer());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.ServiceStatus)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.ServiceStatus other =
          (io.kubernetes.client.proto.V1.ServiceStatus) obj;

      boolean result = true;
      result = result && (hasLoadBalancer() == other.hasLoadBalancer());
      if (hasLoadBalancer()) {
        result = result && getLoadBalancer().equals(other.getLoadBalancer());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasLoadBalancer()) {
        hash = (37 * hash) + LOADBALANCER_FIELD_NUMBER;
        hash = (53 * hash) + getLoadBalancer().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.ServiceStatus prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * ServiceStatus represents the current status of a service.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.ServiceStatus}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.ServiceStatus)
        io.kubernetes.client.proto.V1.ServiceStatusOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_ServiceStatus_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.ServiceStatus.class,
                io.kubernetes.client.proto.V1.ServiceStatus.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.ServiceStatus.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getLoadBalancerFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (loadBalancerBuilder_ == null) {
          loadBalancer_ = null;
        } else {
          loadBalancerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceStatus getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceStatus build() {
        io.kubernetes.client.proto.V1.ServiceStatus result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.ServiceStatus buildPartial() {
        io.kubernetes.client.proto.V1.ServiceStatus result =
            new io.kubernetes.client.proto.V1.ServiceStatus(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (loadBalancerBuilder_ == null) {
          result.loadBalancer_ = loadBalancer_;
        } else {
          result.loadBalancer_ = loadBalancerBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.ServiceStatus) {
          return mergeFrom((io.kubernetes.client.proto.V1.ServiceStatus) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.ServiceStatus other) {
        if (other == io.kubernetes.client.proto.V1.ServiceStatus.getDefaultInstance()) return this;
        if (other.hasLoadBalancer()) {
          mergeLoadBalancer(other.getLoadBalancer());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.ServiceStatus parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.ServiceStatus) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.LoadBalancerStatus loadBalancer_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LoadBalancerStatus,
              io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder,
              io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder>
          loadBalancerBuilder_;
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public boolean hasLoadBalancer() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerStatus getLoadBalancer() {
        if (loadBalancerBuilder_ == null) {
          return loadBalancer_ == null
              ? io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance()
              : loadBalancer_;
        } else {
          return loadBalancerBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public Builder setLoadBalancer(io.kubernetes.client.proto.V1.LoadBalancerStatus value) {
        if (loadBalancerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          loadBalancer_ = value;
          onChanged();
        } else {
          loadBalancerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public Builder setLoadBalancer(
          io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder builderForValue) {
        if (loadBalancerBuilder_ == null) {
          loadBalancer_ = builderForValue.build();
          onChanged();
        } else {
          loadBalancerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public Builder mergeLoadBalancer(io.kubernetes.client.proto.V1.LoadBalancerStatus value) {
        if (loadBalancerBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && loadBalancer_ != null
              && loadBalancer_
                  != io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance()) {
            loadBalancer_ =
                io.kubernetes.client.proto.V1.LoadBalancerStatus.newBuilder(loadBalancer_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            loadBalancer_ = value;
          }
          onChanged();
        } else {
          loadBalancerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public Builder clearLoadBalancer() {
        if (loadBalancerBuilder_ == null) {
          loadBalancer_ = null;
          onChanged();
        } else {
          loadBalancerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder getLoadBalancerBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getLoadBalancerFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      public io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder getLoadBalancerOrBuilder() {
        if (loadBalancerBuilder_ != null) {
          return loadBalancerBuilder_.getMessageOrBuilder();
        } else {
          return loadBalancer_ == null
              ? io.kubernetes.client.proto.V1.LoadBalancerStatus.getDefaultInstance()
              : loadBalancer_;
        }
      }
      /**
       *
       *
       * <pre>
       * LoadBalancer contains the current status of the load-balancer,
       * if one is present.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LoadBalancerStatus loadBalancer = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LoadBalancerStatus,
              io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder,
              io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder>
          getLoadBalancerFieldBuilder() {
        if (loadBalancerBuilder_ == null) {
          loadBalancerBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LoadBalancerStatus,
                  io.kubernetes.client.proto.V1.LoadBalancerStatus.Builder,
                  io.kubernetes.client.proto.V1.LoadBalancerStatusOrBuilder>(
                  getLoadBalancer(), getParentForChildren(), isClean());
          loadBalancer_ = null;
        }
        return loadBalancerBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.ServiceStatus)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.ServiceStatus)
    private static final io.kubernetes.client.proto.V1.ServiceStatus DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.ServiceStatus();
    }

    public static io.kubernetes.client.proto.V1.ServiceStatus getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<ServiceStatus> PARSER =
        new com.google.protobuf.AbstractParser<ServiceStatus>() {
          @java.lang.Override
          public ServiceStatus parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new ServiceStatus(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<ServiceStatus> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<ServiceStatus> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.ServiceStatus getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SessionAffinityConfigOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.SessionAffinityConfig)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    boolean hasClientIP();
    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    io.kubernetes.client.proto.V1.ClientIPConfig getClientIP();
    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder getClientIPOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * SessionAffinityConfig represents the configurations of session affinity.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.SessionAffinityConfig}
   */
  public static final class SessionAffinityConfig extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.SessionAffinityConfig)
      SessionAffinityConfigOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use SessionAffinityConfig.newBuilder() to construct.
    private SessionAffinityConfig(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private SessionAffinityConfig() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private SessionAffinityConfig(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.ClientIPConfig.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = clientIP_.toBuilder();
                }
                clientIP_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ClientIPConfig.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(clientIP_);
                  clientIP_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_SessionAffinityConfig_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.SessionAffinityConfig.class,
              io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder.class);
    }

    private int bitField0_;
    public static final int CLIENTIP_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.ClientIPConfig clientIP_;
    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    public boolean hasClientIP() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ClientIPConfig getClientIP() {
      return clientIP_ == null
          ? io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()
          : clientIP_;
    }
    /**
     *
     *
     * <pre>
     * clientIP contains the configurations of Client IP based session affinity.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
     */
    public io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder getClientIPOrBuilder() {
      return clientIP_ == null
          ? io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()
          : clientIP_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getClientIP());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getClientIP());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.SessionAffinityConfig)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.SessionAffinityConfig other =
          (io.kubernetes.client.proto.V1.SessionAffinityConfig) obj;

      boolean result = true;
      result = result && (hasClientIP() == other.hasClientIP());
      if (hasClientIP()) {
        result = result && getClientIP().equals(other.getClientIP());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasClientIP()) {
        hash = (37 * hash) + CLIENTIP_FIELD_NUMBER;
        hash = (53 * hash) + getClientIP().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.SessionAffinityConfig prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * SessionAffinityConfig represents the configurations of session affinity.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.SessionAffinityConfig}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.SessionAffinityConfig)
        io.kubernetes.client.proto.V1.SessionAffinityConfigOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_SessionAffinityConfig_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.SessionAffinityConfig.class,
                io.kubernetes.client.proto.V1.SessionAffinityConfig.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.SessionAffinityConfig.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getClientIPFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (clientIPBuilder_ == null) {
          clientIP_ = null;
        } else {
          clientIPBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SessionAffinityConfig getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SessionAffinityConfig build() {
        io.kubernetes.client.proto.V1.SessionAffinityConfig result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.SessionAffinityConfig buildPartial() {
        io.kubernetes.client.proto.V1.SessionAffinityConfig result =
            new io.kubernetes.client.proto.V1.SessionAffinityConfig(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (clientIPBuilder_ == null) {
          result.clientIP_ = clientIP_;
        } else {
          result.clientIP_ = clientIPBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.SessionAffinityConfig) {
          return mergeFrom((io.kubernetes.client.proto.V1.SessionAffinityConfig) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.SessionAffinityConfig other) {
        if (other == io.kubernetes.client.proto.V1.SessionAffinityConfig.getDefaultInstance())
          return this;
        if (other.hasClientIP()) {
          mergeClientIP(other.getClientIP());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.SessionAffinityConfig parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.SessionAffinityConfig) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.ClientIPConfig clientIP_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ClientIPConfig,
              io.kubernetes.client.proto.V1.ClientIPConfig.Builder,
              io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder>
          clientIPBuilder_;
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public boolean hasClientIP() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ClientIPConfig getClientIP() {
        if (clientIPBuilder_ == null) {
          return clientIP_ == null
              ? io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()
              : clientIP_;
        } else {
          return clientIPBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public Builder setClientIP(io.kubernetes.client.proto.V1.ClientIPConfig value) {
        if (clientIPBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          clientIP_ = value;
          onChanged();
        } else {
          clientIPBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public Builder setClientIP(
          io.kubernetes.client.proto.V1.ClientIPConfig.Builder builderForValue) {
        if (clientIPBuilder_ == null) {
          clientIP_ = builderForValue.build();
          onChanged();
        } else {
          clientIPBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public Builder mergeClientIP(io.kubernetes.client.proto.V1.ClientIPConfig value) {
        if (clientIPBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && clientIP_ != null
              && clientIP_ != io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()) {
            clientIP_ =
                io.kubernetes.client.proto.V1.ClientIPConfig.newBuilder(clientIP_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            clientIP_ = value;
          }
          onChanged();
        } else {
          clientIPBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public Builder clearClientIP() {
        if (clientIPBuilder_ == null) {
          clientIP_ = null;
          onChanged();
        } else {
          clientIPBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ClientIPConfig.Builder getClientIPBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getClientIPFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      public io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder getClientIPOrBuilder() {
        if (clientIPBuilder_ != null) {
          return clientIPBuilder_.getMessageOrBuilder();
        } else {
          return clientIP_ == null
              ? io.kubernetes.client.proto.V1.ClientIPConfig.getDefaultInstance()
              : clientIP_;
        }
      }
      /**
       *
       *
       * <pre>
       * clientIP contains the configurations of Client IP based session affinity.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ClientIPConfig clientIP = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ClientIPConfig,
              io.kubernetes.client.proto.V1.ClientIPConfig.Builder,
              io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder>
          getClientIPFieldBuilder() {
        if (clientIPBuilder_ == null) {
          clientIPBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ClientIPConfig,
                  io.kubernetes.client.proto.V1.ClientIPConfig.Builder,
                  io.kubernetes.client.proto.V1.ClientIPConfigOrBuilder>(
                  getClientIP(), getParentForChildren(), isClean());
          clientIP_ = null;
        }
        return clientIPBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.SessionAffinityConfig)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.SessionAffinityConfig)
    private static final io.kubernetes.client.proto.V1.SessionAffinityConfig DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.SessionAffinityConfig();
    }

    public static io.kubernetes.client.proto.V1.SessionAffinityConfig getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<SessionAffinityConfig> PARSER =
        new com.google.protobuf.AbstractParser<SessionAffinityConfig>() {
          @java.lang.Override
          public SessionAffinityConfig parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new SessionAffinityConfig(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<SessionAffinityConfig> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<SessionAffinityConfig> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.SessionAffinityConfig getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface StorageOSPersistentVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.StorageOSPersistentVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    boolean hasVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    java.lang.String getVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeNameBytes();

    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    boolean hasVolumeNamespace();
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    java.lang.String getVolumeNamespace();
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    com.google.protobuf.ByteString getVolumeNamespaceBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents a StorageOS persistent volume resource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.StorageOSPersistentVolumeSource}
   */
  public static final class StorageOSPersistentVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.StorageOSPersistentVolumeSource)
      StorageOSPersistentVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use StorageOSPersistentVolumeSource.newBuilder() to construct.
    private StorageOSPersistentVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private StorageOSPersistentVolumeSource() {
      volumeName_ = "";
      volumeNamespace_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private StorageOSPersistentVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                volumeNamespace_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                fsType_ = bs;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.ObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ObjectReference.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.class,
              io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMENAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeName_;
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public boolean hasVolumeName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public java.lang.String getVolumeName() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeNameBytes() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMENAMESPACE_FIELD_NUMBER = 2;
    private volatile java.lang.Object volumeNamespace_;
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public boolean hasVolumeNamespace() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public java.lang.String getVolumeNamespace() {
      java.lang.Object ref = volumeNamespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeNamespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public com.google.protobuf.ByteString getVolumeNamespaceBytes() {
      java.lang.Object ref = volumeNamespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeNamespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.ObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
          : secretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, volumeNamespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fsType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, volumeNamespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fsType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource other =
          (io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeName() == other.hasVolumeName());
      if (hasVolumeName()) {
        result = result && getVolumeName().equals(other.getVolumeName());
      }
      result = result && (hasVolumeNamespace() == other.hasVolumeNamespace());
      if (hasVolumeNamespace()) {
        result = result && getVolumeNamespace().equals(other.getVolumeNamespace());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeName()) {
        hash = (37 * hash) + VOLUMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeName().hashCode();
      }
      if (hasVolumeNamespace()) {
        hash = (37 * hash) + VOLUMENAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeNamespace().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a StorageOS persistent volume resource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.StorageOSPersistentVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.StorageOSPersistentVolumeSource)
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.class,
                io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeNamespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource build() {
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource result =
            new io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeName_ = volumeName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeNamespace_ = volumeNamespace_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeName()) {
          bitField0_ |= 0x00000001;
          volumeName_ = other.volumeName_;
          onChanged();
        }
        if (other.hasVolumeNamespace()) {
          bitField0_ |= 0x00000002;
          volumeNamespace_ = other.volumeNamespace_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000004;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeName_ = "";
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public boolean hasVolumeName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public java.lang.String getVolumeName() {
        java.lang.Object ref = volumeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeNameBytes() {
        java.lang.Object ref = volumeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder setVolumeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder clearVolumeName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeName_ = getDefaultInstance().getVolumeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder setVolumeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeNamespace_ = "";
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public boolean hasVolumeNamespace() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public java.lang.String getVolumeNamespace() {
        java.lang.Object ref = volumeNamespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeNamespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public com.google.protobuf.ByteString getVolumeNamespaceBytes() {
        java.lang.Object ref = volumeNamespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeNamespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder setVolumeNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeNamespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder clearVolumeNamespace() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeNamespace_ = getDefaultInstance().getVolumeNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder setVolumeNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeNamespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.ObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.ObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.ObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && secretRef_ != null
              && secretRef_ != io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.ObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.ObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ObjectReference secretRef = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ObjectReference,
              io.kubernetes.client.proto.V1.ObjectReference.Builder,
              io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ObjectReference,
                  io.kubernetes.client.proto.V1.ObjectReference.Builder,
                  io.kubernetes.client.proto.V1.ObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.StorageOSPersistentVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.StorageOSPersistentVolumeSource)
    private static final io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<StorageOSPersistentVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<StorageOSPersistentVolumeSource>() {
          @java.lang.Override
          public StorageOSPersistentVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new StorageOSPersistentVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<StorageOSPersistentVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StorageOSPersistentVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.StorageOSPersistentVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface StorageOSVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.StorageOSVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    boolean hasVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    java.lang.String getVolumeName();
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    com.google.protobuf.ByteString getVolumeNameBytes();

    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    boolean hasVolumeNamespace();
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    java.lang.String getVolumeNamespace();
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    com.google.protobuf.ByteString getVolumeNamespaceBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    boolean hasSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef();
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents a StorageOS persistent volume resource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.StorageOSVolumeSource}
   */
  public static final class StorageOSVolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.StorageOSVolumeSource)
      StorageOSVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use StorageOSVolumeSource.newBuilder() to construct.
    private StorageOSVolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private StorageOSVolumeSource() {
      volumeName_ = "";
      volumeNamespace_ = "";
      fsType_ = "";
      readOnly_ = false;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private StorageOSVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumeName_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                volumeNamespace_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                fsType_ = bs;
                break;
              }
            case 32:
              {
                bitField0_ |= 0x00000008;
                readOnly_ = input.readBool();
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.LocalObjectReference.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = secretRef_.toBuilder();
                }
                secretRef_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.LocalObjectReference.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secretRef_);
                  secretRef_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.StorageOSVolumeSource.class,
              io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMENAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumeName_;
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public boolean hasVolumeName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public java.lang.String getVolumeName() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeName is the human-readable name of the StorageOS volume.  Volume
     * names are only unique within a namespace.
     * </pre>
     *
     * <code>optional string volumeName = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumeNameBytes() {
      java.lang.Object ref = volumeName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMENAMESPACE_FIELD_NUMBER = 2;
    private volatile java.lang.Object volumeNamespace_;
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public boolean hasVolumeNamespace() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public java.lang.String getVolumeNamespace() {
      java.lang.Object ref = volumeNamespace_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumeNamespace_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
     * namespace is specified then the Pod's namespace will be used.  This allows the
     * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
     * Set VolumeName to any name to override the default behaviour.
     * Set to "default" if you are not using namespaces within StorageOS.
     * Namespaces that do not pre-exist within StorageOS will be created.
     * +optional
     * </pre>
     *
     * <code>optional string volumeNamespace = 2;</code>
     */
    public com.google.protobuf.ByteString getVolumeNamespaceBytes() {
      java.lang.Object ref = volumeNamespace_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumeNamespace_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 3;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 3;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 4;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Defaults to false (read/write). ReadOnly here will force
     * the ReadOnly setting in VolumeMounts.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 4;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int SECRETREF_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_;
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public boolean hasSecretRef() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }
    /**
     *
     *
     * <pre>
     * SecretRef specifies the secret to use for obtaining the StorageOS API
     * credentials.  If not specified, default values will be attempted.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
     */
    public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
      return secretRef_ == null
          ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
          : secretRef_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, volumeNamespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, fsType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBool(4, readOnly_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getSecretRef());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumeName_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, volumeNamespace_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, fsType_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(4, readOnly_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getSecretRef());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.StorageOSVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.StorageOSVolumeSource other =
          (io.kubernetes.client.proto.V1.StorageOSVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumeName() == other.hasVolumeName());
      if (hasVolumeName()) {
        result = result && getVolumeName().equals(other.getVolumeName());
      }
      result = result && (hasVolumeNamespace() == other.hasVolumeNamespace());
      if (hasVolumeNamespace()) {
        result = result && getVolumeNamespace().equals(other.getVolumeNamespace());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasSecretRef() == other.hasSecretRef());
      if (hasSecretRef()) {
        result = result && getSecretRef().equals(other.getSecretRef());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumeName()) {
        hash = (37 * hash) + VOLUMENAME_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeName().hashCode();
      }
      if (hasVolumeNamespace()) {
        hash = (37 * hash) + VOLUMENAMESPACE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeNamespace().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasSecretRef()) {
        hash = (37 * hash) + SECRETREF_FIELD_NUMBER;
        hash = (53 * hash) + getSecretRef().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.StorageOSVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a StorageOS persistent volume resource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.StorageOSVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.StorageOSVolumeSource)
        io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.StorageOSVolumeSource.class,
                io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.StorageOSVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretRefFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumeName_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeNamespace_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000008);
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSVolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSVolumeSource build() {
        io.kubernetes.client.proto.V1.StorageOSVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.StorageOSVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.StorageOSVolumeSource result =
            new io.kubernetes.client.proto.V1.StorageOSVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumeName_ = volumeName_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.volumeNamespace_ = volumeNamespace_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (secretRefBuilder_ == null) {
          result.secretRef_ = secretRef_;
        } else {
          result.secretRef_ = secretRefBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.StorageOSVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.StorageOSVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.StorageOSVolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumeName()) {
          bitField0_ |= 0x00000001;
          volumeName_ = other.volumeName_;
          onChanged();
        }
        if (other.hasVolumeNamespace()) {
          bitField0_ |= 0x00000002;
          volumeNamespace_ = other.volumeNamespace_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000004;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasSecretRef()) {
          mergeSecretRef(other.getSecretRef());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.StorageOSVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.StorageOSVolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumeName_ = "";
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public boolean hasVolumeName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public java.lang.String getVolumeName() {
        java.lang.Object ref = volumeName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumeNameBytes() {
        java.lang.Object ref = volumeName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder setVolumeName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder clearVolumeName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumeName_ = getDefaultInstance().getVolumeName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeName is the human-readable name of the StorageOS volume.  Volume
       * names are only unique within a namespace.
       * </pre>
       *
       * <code>optional string volumeName = 1;</code>
       */
      public Builder setVolumeNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumeName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object volumeNamespace_ = "";
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public boolean hasVolumeNamespace() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public java.lang.String getVolumeNamespace() {
        java.lang.Object ref = volumeNamespace_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumeNamespace_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public com.google.protobuf.ByteString getVolumeNamespaceBytes() {
        java.lang.Object ref = volumeNamespace_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumeNamespace_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder setVolumeNamespace(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeNamespace_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder clearVolumeNamespace() {
        bitField0_ = (bitField0_ & ~0x00000002);
        volumeNamespace_ = getDefaultInstance().getVolumeNamespace();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeNamespace specifies the scope of the volume within StorageOS.  If no
       * namespace is specified then the Pod's namespace will be used.  This allows the
       * Kubernetes name scoping to be mirrored within StorageOS for tighter integration.
       * Set VolumeName to any name to override the default behaviour.
       * Set to "default" if you are not using namespaces within StorageOS.
       * Namespaces that do not pre-exist within StorageOS will be created.
       * +optional
       * </pre>
       *
       * <code>optional string volumeNamespace = 2;</code>
       */
      public Builder setVolumeNamespaceBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        volumeNamespace_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000004);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 3;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        fsType_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000008;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Defaults to false (read/write). ReadOnly here will force
       * the ReadOnly setting in VolumeMounts.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 4;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000008);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.LocalObjectReference secretRef_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          secretRefBuilder_;
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public boolean hasSecretRef() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference getSecretRef() {
        if (secretRefBuilder_ == null) {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        } else {
          return secretRefBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secretRef_ = value;
          onChanged();
        } else {
          secretRefBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder setSecretRef(
          io.kubernetes.client.proto.V1.LocalObjectReference.Builder builderForValue) {
        if (secretRefBuilder_ == null) {
          secretRef_ = builderForValue.build();
          onChanged();
        } else {
          secretRefBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder mergeSecretRef(io.kubernetes.client.proto.V1.LocalObjectReference value) {
        if (secretRefBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && secretRef_ != null
              && secretRef_
                  != io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()) {
            secretRef_ =
                io.kubernetes.client.proto.V1.LocalObjectReference.newBuilder(secretRef_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secretRef_ = value;
          }
          onChanged();
        } else {
          secretRefBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public Builder clearSecretRef() {
        if (secretRefBuilder_ == null) {
          secretRef_ = null;
          onChanged();
        } else {
          secretRefBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReference.Builder getSecretRefBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getSecretRefFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      public io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder getSecretRefOrBuilder() {
        if (secretRefBuilder_ != null) {
          return secretRefBuilder_.getMessageOrBuilder();
        } else {
          return secretRef_ == null
              ? io.kubernetes.client.proto.V1.LocalObjectReference.getDefaultInstance()
              : secretRef_;
        }
      }
      /**
       *
       *
       * <pre>
       * SecretRef specifies the secret to use for obtaining the StorageOS API
       * credentials.  If not specified, default values will be attempted.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.LocalObjectReference secretRef = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.LocalObjectReference,
              io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
              io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>
          getSecretRefFieldBuilder() {
        if (secretRefBuilder_ == null) {
          secretRefBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.LocalObjectReference,
                  io.kubernetes.client.proto.V1.LocalObjectReference.Builder,
                  io.kubernetes.client.proto.V1.LocalObjectReferenceOrBuilder>(
                  getSecretRef(), getParentForChildren(), isClean());
          secretRef_ = null;
        }
        return secretRefBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.StorageOSVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.StorageOSVolumeSource)
    private static final io.kubernetes.client.proto.V1.StorageOSVolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.StorageOSVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.StorageOSVolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<StorageOSVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<StorageOSVolumeSource>() {
          @java.lang.Override
          public StorageOSVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new StorageOSVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<StorageOSVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<StorageOSVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.StorageOSVolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface SysctlOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Sysctl)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString getValueBytes();
  }
  /**
   *
   *
   * <pre>
   * Sysctl defines a kernel parameter to be set
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Sysctl}
   */
  public static final class Sysctl extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Sysctl)
      SysctlOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Sysctl.newBuilder() to construct.
    private Sysctl(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Sysctl() {
      name_ = "";
      value_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Sysctl(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                value_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Sysctl_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Sysctl_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Sysctl.class,
              io.kubernetes.client.proto.V1.Sysctl.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name of a property to set
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Value of a property to set
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Sysctl)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Sysctl other = (io.kubernetes.client.proto.V1.Sysctl) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Sysctl parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Sysctl prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Sysctl defines a kernel parameter to be set
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Sysctl}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Sysctl)
        io.kubernetes.client.proto.V1.SysctlOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Sysctl_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Sysctl_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Sysctl.class,
                io.kubernetes.client.proto.V1.Sysctl.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Sysctl.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Sysctl_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Sysctl getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Sysctl.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Sysctl build() {
        io.kubernetes.client.proto.V1.Sysctl result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Sysctl buildPartial() {
        io.kubernetes.client.proto.V1.Sysctl result =
            new io.kubernetes.client.proto.V1.Sysctl(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Sysctl) {
          return mergeFrom((io.kubernetes.client.proto.V1.Sysctl) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Sysctl other) {
        if (other == io.kubernetes.client.proto.V1.Sysctl.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Sysctl parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Sysctl) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name of a property to set
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Value of a property to set
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Sysctl)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Sysctl)
    private static final io.kubernetes.client.proto.V1.Sysctl DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Sysctl();
    }

    public static io.kubernetes.client.proto.V1.Sysctl getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Sysctl> PARSER =
        new com.google.protobuf.AbstractParser<Sysctl>() {
          @java.lang.Override
          public Sysctl parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Sysctl(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Sysctl> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Sysctl> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Sysctl getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TCPSocketActionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.TCPSocketAction)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    boolean hasPort();
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrString getPort();
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder();

    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    boolean hasHost();
    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    java.lang.String getHost();
    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    com.google.protobuf.ByteString getHostBytes();
  }
  /**
   *
   *
   * <pre>
   * TCPSocketAction describes an action based on opening a socket
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.TCPSocketAction}
   */
  public static final class TCPSocketAction extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.TCPSocketAction)
      TCPSocketActionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use TCPSocketAction.newBuilder() to construct.
    private TCPSocketAction(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private TCPSocketAction() {
      host_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private TCPSocketAction(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.IntStr.IntOrString.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = port_.toBuilder();
                }
                port_ =
                    input.readMessage(
                        io.kubernetes.client.proto.IntStr.IntOrString.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(port_);
                  port_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                host_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_TCPSocketAction_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.TCPSocketAction.class,
              io.kubernetes.client.proto.V1.TCPSocketAction.Builder.class);
    }

    private int bitField0_;
    public static final int PORT_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.IntStr.IntOrString port_;
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrString getPort() {
      return port_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : port_;
    }
    /**
     *
     *
     * <pre>
     * Number or name of the port to access on the container.
     * Number must be in the range 1 to 65535.
     * Name must be an IANA_SVC_NAME.
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
     */
    public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder() {
      return port_ == null
          ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
          : port_;
    }

    public static final int HOST_FIELD_NUMBER = 2;
    private volatile java.lang.Object host_;
    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public boolean hasHost() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public java.lang.String getHost() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          host_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Optional: Host name to connect to, defaults to the pod IP.
     * +optional
     * </pre>
     *
     * <code>optional string host = 2;</code>
     */
    public com.google.protobuf.ByteString getHostBytes() {
      java.lang.Object ref = host_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        host_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getPort());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, host_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getPort());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, host_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.TCPSocketAction)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.TCPSocketAction other =
          (io.kubernetes.client.proto.V1.TCPSocketAction) obj;

      boolean result = true;
      result = result && (hasPort() == other.hasPort());
      if (hasPort()) {
        result = result && getPort().equals(other.getPort());
      }
      result = result && (hasHost() == other.hasHost());
      if (hasHost()) {
        result = result && getHost().equals(other.getHost());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasPort()) {
        hash = (37 * hash) + PORT_FIELD_NUMBER;
        hash = (53 * hash) + getPort().hashCode();
      }
      if (hasHost()) {
        hash = (37 * hash) + HOST_FIELD_NUMBER;
        hash = (53 * hash) + getHost().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.TCPSocketAction prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * TCPSocketAction describes an action based on opening a socket
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.TCPSocketAction}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.TCPSocketAction)
        io.kubernetes.client.proto.V1.TCPSocketActionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_TCPSocketAction_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.TCPSocketAction.class,
                io.kubernetes.client.proto.V1.TCPSocketAction.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.TCPSocketAction.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPortFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (portBuilder_ == null) {
          port_ = null;
        } else {
          portBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        host_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TCPSocketAction getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TCPSocketAction build() {
        io.kubernetes.client.proto.V1.TCPSocketAction result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TCPSocketAction buildPartial() {
        io.kubernetes.client.proto.V1.TCPSocketAction result =
            new io.kubernetes.client.proto.V1.TCPSocketAction(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (portBuilder_ == null) {
          result.port_ = port_;
        } else {
          result.port_ = portBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.host_ = host_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.TCPSocketAction) {
          return mergeFrom((io.kubernetes.client.proto.V1.TCPSocketAction) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.TCPSocketAction other) {
        if (other == io.kubernetes.client.proto.V1.TCPSocketAction.getDefaultInstance())
          return this;
        if (other.hasPort()) {
          mergePort(other.getPort());
        }
        if (other.hasHost()) {
          bitField0_ |= 0x00000002;
          host_ = other.host_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.TCPSocketAction parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.TCPSocketAction) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.IntStr.IntOrString port_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          portBuilder_;
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString getPort() {
        if (portBuilder_ == null) {
          return port_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : port_;
        } else {
          return portBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public Builder setPort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (portBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          port_ = value;
          onChanged();
        } else {
          portBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public Builder setPort(
          io.kubernetes.client.proto.IntStr.IntOrString.Builder builderForValue) {
        if (portBuilder_ == null) {
          port_ = builderForValue.build();
          onChanged();
        } else {
          portBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public Builder mergePort(io.kubernetes.client.proto.IntStr.IntOrString value) {
        if (portBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && port_ != null
              && port_ != io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()) {
            port_ =
                io.kubernetes.client.proto.IntStr.IntOrString.newBuilder(port_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            port_ = value;
          }
          onChanged();
        } else {
          portBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public Builder clearPort() {
        if (portBuilder_ == null) {
          port_ = null;
          onChanged();
        } else {
          portBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrString.Builder getPortBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getPortFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      public io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder getPortOrBuilder() {
        if (portBuilder_ != null) {
          return portBuilder_.getMessageOrBuilder();
        } else {
          return port_ == null
              ? io.kubernetes.client.proto.IntStr.IntOrString.getDefaultInstance()
              : port_;
        }
      }
      /**
       *
       *
       * <pre>
       * Number or name of the port to access on the container.
       * Number must be in the range 1 to 65535.
       * Name must be an IANA_SVC_NAME.
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.util.intstr.IntOrString port = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.IntStr.IntOrString,
              io.kubernetes.client.proto.IntStr.IntOrString.Builder,
              io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>
          getPortFieldBuilder() {
        if (portBuilder_ == null) {
          portBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.IntStr.IntOrString,
                  io.kubernetes.client.proto.IntStr.IntOrString.Builder,
                  io.kubernetes.client.proto.IntStr.IntOrStringOrBuilder>(
                  getPort(), getParentForChildren(), isClean());
          port_ = null;
        }
        return portBuilder_;
      }

      private java.lang.Object host_ = "";
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public boolean hasHost() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public java.lang.String getHost() {
        java.lang.Object ref = host_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            host_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public com.google.protobuf.ByteString getHostBytes() {
        java.lang.Object ref = host_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          host_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder setHost(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        host_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder clearHost() {
        bitField0_ = (bitField0_ & ~0x00000002);
        host_ = getDefaultInstance().getHost();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Optional: Host name to connect to, defaults to the pod IP.
       * +optional
       * </pre>
       *
       * <code>optional string host = 2;</code>
       */
      public Builder setHostBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        host_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.TCPSocketAction)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.TCPSocketAction)
    private static final io.kubernetes.client.proto.V1.TCPSocketAction DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.TCPSocketAction();
    }

    public static io.kubernetes.client.proto.V1.TCPSocketAction getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<TCPSocketAction> PARSER =
        new com.google.protobuf.AbstractParser<TCPSocketAction>() {
          @java.lang.Override
          public TCPSocketAction parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new TCPSocketAction(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<TCPSocketAction> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TCPSocketAction> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.TCPSocketAction getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TaintOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Taint)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    com.google.protobuf.ByteString getValueBytes();

    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    boolean hasEffect();
    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    java.lang.String getEffect();
    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    com.google.protobuf.ByteString getEffectBytes();

    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    boolean hasTimeAdded();
    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    io.kubernetes.client.proto.Meta.Time getTimeAdded();
    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    io.kubernetes.client.proto.Meta.TimeOrBuilder getTimeAddedOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * The node this Taint is attached to has the "effect" on
   * any pod that does not tolerate the Taint.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Taint}
   */
  public static final class Taint extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Taint)
      TaintOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Taint.newBuilder() to construct.
    private Taint(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Taint() {
      key_ = "";
      value_ = "";
      effect_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Taint(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                value_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                effect_ = bs;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.Meta.Time.Builder subBuilder = null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = timeAdded_.toBuilder();
                }
                timeAdded_ =
                    input.readMessage(
                        io.kubernetes.client.proto.Meta.Time.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(timeAdded_);
                  timeAdded_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Taint_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Taint_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Taint.class,
              io.kubernetes.client.proto.V1.Taint.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. The taint key to be applied to a node.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 2;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. The taint value corresponding to the taint key.
     * +optional
     * </pre>
     *
     * <code>optional string value = 2;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EFFECT_FIELD_NUMBER = 3;
    private volatile java.lang.Object effect_;
    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    public boolean hasEffect() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    public java.lang.String getEffect() {
      java.lang.Object ref = effect_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          effect_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Required. The effect of the taint on pods
     * that do not tolerate the taint.
     * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
     * </pre>
     *
     * <code>optional string effect = 3;</code>
     */
    public com.google.protobuf.ByteString getEffectBytes() {
      java.lang.Object ref = effect_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        effect_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TIMEADDED_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.Meta.Time timeAdded_;
    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    public boolean hasTimeAdded() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.Time getTimeAdded() {
      return timeAdded_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : timeAdded_;
    }
    /**
     *
     *
     * <pre>
     * TimeAdded represents the time at which the taint was added.
     * It is only written for NoExecute taints.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
     */
    public io.kubernetes.client.proto.Meta.TimeOrBuilder getTimeAddedOrBuilder() {
      return timeAdded_ == null
          ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
          : timeAdded_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, effect_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getTimeAdded());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, value_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, effect_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(4, getTimeAdded());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Taint)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Taint other = (io.kubernetes.client.proto.V1.Taint) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && (hasEffect() == other.hasEffect());
      if (hasEffect()) {
        result = result && getEffect().equals(other.getEffect());
      }
      result = result && (hasTimeAdded() == other.hasTimeAdded());
      if (hasTimeAdded()) {
        result = result && getTimeAdded().equals(other.getTimeAdded());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasEffect()) {
        hash = (37 * hash) + EFFECT_FIELD_NUMBER;
        hash = (53 * hash) + getEffect().hashCode();
      }
      if (hasTimeAdded()) {
        hash = (37 * hash) + TIMEADDED_FIELD_NUMBER;
        hash = (53 * hash) + getTimeAdded().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Taint parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Taint parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Taint parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Taint prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * The node this Taint is attached to has the "effect" on
     * any pod that does not tolerate the Taint.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Taint}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Taint)
        io.kubernetes.client.proto.V1.TaintOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Taint_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Taint_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Taint.class,
                io.kubernetes.client.proto.V1.Taint.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Taint.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getTimeAddedFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        effect_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        if (timeAddedBuilder_ == null) {
          timeAdded_ = null;
        } else {
          timeAddedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Taint_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Taint getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Taint.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Taint build() {
        io.kubernetes.client.proto.V1.Taint result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Taint buildPartial() {
        io.kubernetes.client.proto.V1.Taint result = new io.kubernetes.client.proto.V1.Taint(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.effect_ = effect_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (timeAddedBuilder_ == null) {
          result.timeAdded_ = timeAdded_;
        } else {
          result.timeAdded_ = timeAddedBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Taint) {
          return mergeFrom((io.kubernetes.client.proto.V1.Taint) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Taint other) {
        if (other == io.kubernetes.client.proto.V1.Taint.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000002;
          value_ = other.value_;
          onChanged();
        }
        if (other.hasEffect()) {
          bitField0_ |= 0x00000004;
          effect_ = other.effect_;
          onChanged();
        }
        if (other.hasTimeAdded()) {
          mergeTimeAdded(other.getTimeAdded());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Taint parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Taint) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The taint key to be applied to a node.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The taint value corresponding to the taint key.
       * +optional
       * </pre>
       *
       * <code>optional string value = 2;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        value_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object effect_ = "";
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public boolean hasEffect() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public java.lang.String getEffect() {
        java.lang.Object ref = effect_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            effect_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public com.google.protobuf.ByteString getEffectBytes() {
        java.lang.Object ref = effect_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          effect_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public Builder setEffect(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        effect_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public Builder clearEffect() {
        bitField0_ = (bitField0_ & ~0x00000004);
        effect_ = getDefaultInstance().getEffect();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. The effect of the taint on pods
       * that do not tolerate the taint.
       * Valid effects are NoSchedule, PreferNoSchedule and NoExecute.
       * </pre>
       *
       * <code>optional string effect = 3;</code>
       */
      public Builder setEffectBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        effect_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.Meta.Time timeAdded_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          timeAddedBuilder_;
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public boolean hasTimeAdded() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.Time getTimeAdded() {
        if (timeAddedBuilder_ == null) {
          return timeAdded_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : timeAdded_;
        } else {
          return timeAddedBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public Builder setTimeAdded(io.kubernetes.client.proto.Meta.Time value) {
        if (timeAddedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          timeAdded_ = value;
          onChanged();
        } else {
          timeAddedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public Builder setTimeAdded(io.kubernetes.client.proto.Meta.Time.Builder builderForValue) {
        if (timeAddedBuilder_ == null) {
          timeAdded_ = builderForValue.build();
          onChanged();
        } else {
          timeAddedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public Builder mergeTimeAdded(io.kubernetes.client.proto.Meta.Time value) {
        if (timeAddedBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && timeAdded_ != null
              && timeAdded_ != io.kubernetes.client.proto.Meta.Time.getDefaultInstance()) {
            timeAdded_ =
                io.kubernetes.client.proto.Meta.Time.newBuilder(timeAdded_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            timeAdded_ = value;
          }
          onChanged();
        } else {
          timeAddedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public Builder clearTimeAdded() {
        if (timeAddedBuilder_ == null) {
          timeAdded_ = null;
          onChanged();
        } else {
          timeAddedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.Time.Builder getTimeAddedBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getTimeAddedFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      public io.kubernetes.client.proto.Meta.TimeOrBuilder getTimeAddedOrBuilder() {
        if (timeAddedBuilder_ != null) {
          return timeAddedBuilder_.getMessageOrBuilder();
        } else {
          return timeAdded_ == null
              ? io.kubernetes.client.proto.Meta.Time.getDefaultInstance()
              : timeAdded_;
        }
      }
      /**
       *
       *
       * <pre>
       * TimeAdded represents the time at which the taint was added.
       * It is only written for NoExecute taints.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.apimachinery.pkg.apis.meta.v1.Time timeAdded = 4;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.Meta.Time,
              io.kubernetes.client.proto.Meta.Time.Builder,
              io.kubernetes.client.proto.Meta.TimeOrBuilder>
          getTimeAddedFieldBuilder() {
        if (timeAddedBuilder_ == null) {
          timeAddedBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.Meta.Time,
                  io.kubernetes.client.proto.Meta.Time.Builder,
                  io.kubernetes.client.proto.Meta.TimeOrBuilder>(
                  getTimeAdded(), getParentForChildren(), isClean());
          timeAdded_ = null;
        }
        return timeAddedBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Taint)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Taint)
    private static final io.kubernetes.client.proto.V1.Taint DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Taint();
    }

    public static io.kubernetes.client.proto.V1.Taint getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Taint> PARSER =
        new com.google.protobuf.AbstractParser<Taint>() {
          @java.lang.Override
          public Taint parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Taint(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Taint> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Taint> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Taint getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TolerationOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Toleration)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    boolean hasOperator();
    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    java.lang.String getOperator();
    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    com.google.protobuf.ByteString getOperatorBytes();

    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    boolean hasValue();
    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    java.lang.String getValue();
    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    com.google.protobuf.ByteString getValueBytes();

    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    boolean hasEffect();
    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    java.lang.String getEffect();
    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    com.google.protobuf.ByteString getEffectBytes();

    /**
     *
     *
     * <pre>
     * TolerationSeconds represents the period of time the toleration (which must be
     * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
     * it is not set, which means tolerate the taint forever (do not evict). Zero and
     * negative values will be treated as 0 (evict immediately) by the system.
     * +optional
     * </pre>
     *
     * <code>optional int64 tolerationSeconds = 5;</code>
     */
    boolean hasTolerationSeconds();
    /**
     *
     *
     * <pre>
     * TolerationSeconds represents the period of time the toleration (which must be
     * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
     * it is not set, which means tolerate the taint forever (do not evict). Zero and
     * negative values will be treated as 0 (evict immediately) by the system.
     * +optional
     * </pre>
     *
     * <code>optional int64 tolerationSeconds = 5;</code>
     */
    long getTolerationSeconds();
  }
  /**
   *
   *
   * <pre>
   * The pod this Toleration is attached to tolerates any taint that matches
   * the triple &lt;key,value,effect&gt; using the matching operator &lt;operator&gt;.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Toleration}
   */
  public static final class Toleration extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Toleration)
      TolerationOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Toleration.newBuilder() to construct.
    private Toleration(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Toleration() {
      key_ = "";
      operator_ = "";
      value_ = "";
      effect_ = "";
      tolerationSeconds_ = 0L;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Toleration(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                operator_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                value_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                effect_ = bs;
                break;
              }
            case 40:
              {
                bitField0_ |= 0x00000010;
                tolerationSeconds_ = input.readInt64();
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Toleration_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Toleration_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Toleration.class,
              io.kubernetes.client.proto.V1.Toleration.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Key is the taint key that the toleration applies to. Empty means match all taint keys.
     * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
     * +optional
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int OPERATOR_FIELD_NUMBER = 2;
    private volatile java.lang.Object operator_;
    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public boolean hasOperator() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public java.lang.String getOperator() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          operator_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Operator represents a key's relationship to the value.
     * Valid operators are Exists and Equal. Defaults to Equal.
     * Exists is equivalent to wildcard for value, so that a pod can
     * tolerate all taints of a particular category.
     * +optional
     * </pre>
     *
     * <code>optional string operator = 2;</code>
     */
    public com.google.protobuf.ByteString getOperatorBytes() {
      java.lang.Object ref = operator_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        operator_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUE_FIELD_NUMBER = 3;
    private volatile java.lang.Object value_;
    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    public boolean hasValue() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    public java.lang.String getValue() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          value_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Value is the taint value the toleration matches to.
     * If the operator is Exists, the value should be empty, otherwise just a regular string.
     * +optional
     * </pre>
     *
     * <code>optional string value = 3;</code>
     */
    public com.google.protobuf.ByteString getValueBytes() {
      java.lang.Object ref = value_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        value_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int EFFECT_FIELD_NUMBER = 4;
    private volatile java.lang.Object effect_;
    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    public boolean hasEffect() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    public java.lang.String getEffect() {
      java.lang.Object ref = effect_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          effect_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Effect indicates the taint effect to match. Empty means match all taint effects.
     * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
     * +optional
     * </pre>
     *
     * <code>optional string effect = 4;</code>
     */
    public com.google.protobuf.ByteString getEffectBytes() {
      java.lang.Object ref = effect_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        effect_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int TOLERATIONSECONDS_FIELD_NUMBER = 5;
    private long tolerationSeconds_;
    /**
     *
     *
     * <pre>
     * TolerationSeconds represents the period of time the toleration (which must be
     * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
     * it is not set, which means tolerate the taint forever (do not evict). Zero and
     * negative values will be treated as 0 (evict immediately) by the system.
     * +optional
     * </pre>
     *
     * <code>optional int64 tolerationSeconds = 5;</code>
     */
    public boolean hasTolerationSeconds() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * TolerationSeconds represents the period of time the toleration (which must be
     * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
     * it is not set, which means tolerate the taint forever (do not evict). Zero and
     * negative values will be treated as 0 (evict immediately) by the system.
     * +optional
     * </pre>
     *
     * <code>optional int64 tolerationSeconds = 5;</code>
     */
    public long getTolerationSeconds() {
      return tolerationSeconds_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, operator_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, value_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, effect_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeInt64(5, tolerationSeconds_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, operator_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, value_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, effect_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeInt64Size(5, tolerationSeconds_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Toleration)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Toleration other =
          (io.kubernetes.client.proto.V1.Toleration) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && (hasOperator() == other.hasOperator());
      if (hasOperator()) {
        result = result && getOperator().equals(other.getOperator());
      }
      result = result && (hasValue() == other.hasValue());
      if (hasValue()) {
        result = result && getValue().equals(other.getValue());
      }
      result = result && (hasEffect() == other.hasEffect());
      if (hasEffect()) {
        result = result && getEffect().equals(other.getEffect());
      }
      result = result && (hasTolerationSeconds() == other.hasTolerationSeconds());
      if (hasTolerationSeconds()) {
        result = result && (getTolerationSeconds() == other.getTolerationSeconds());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (hasOperator()) {
        hash = (37 * hash) + OPERATOR_FIELD_NUMBER;
        hash = (53 * hash) + getOperator().hashCode();
      }
      if (hasValue()) {
        hash = (37 * hash) + VALUE_FIELD_NUMBER;
        hash = (53 * hash) + getValue().hashCode();
      }
      if (hasEffect()) {
        hash = (37 * hash) + EFFECT_FIELD_NUMBER;
        hash = (53 * hash) + getEffect().hashCode();
      }
      if (hasTolerationSeconds()) {
        hash = (37 * hash) + TOLERATIONSECONDS_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(getTolerationSeconds());
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Toleration parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Toleration prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * The pod this Toleration is attached to tolerates any taint that matches
     * the triple &lt;key,value,effect&gt; using the matching operator &lt;operator&gt;.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Toleration}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Toleration)
        io.kubernetes.client.proto.V1.TolerationOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Toleration_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Toleration_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Toleration.class,
                io.kubernetes.client.proto.V1.Toleration.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Toleration.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        operator_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        value_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        effect_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        tolerationSeconds_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_Toleration_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Toleration getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Toleration.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Toleration build() {
        io.kubernetes.client.proto.V1.Toleration result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Toleration buildPartial() {
        io.kubernetes.client.proto.V1.Toleration result =
            new io.kubernetes.client.proto.V1.Toleration(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.operator_ = operator_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.value_ = value_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.effect_ = effect_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.tolerationSeconds_ = tolerationSeconds_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Toleration) {
          return mergeFrom((io.kubernetes.client.proto.V1.Toleration) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Toleration other) {
        if (other == io.kubernetes.client.proto.V1.Toleration.getDefaultInstance()) return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (other.hasOperator()) {
          bitField0_ |= 0x00000002;
          operator_ = other.operator_;
          onChanged();
        }
        if (other.hasValue()) {
          bitField0_ |= 0x00000004;
          value_ = other.value_;
          onChanged();
        }
        if (other.hasEffect()) {
          bitField0_ |= 0x00000008;
          effect_ = other.effect_;
          onChanged();
        }
        if (other.hasTolerationSeconds()) {
          setTolerationSeconds(other.getTolerationSeconds());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Toleration parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Toleration) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Key is the taint key that the toleration applies to. Empty means match all taint keys.
       * If the key is empty, operator must be Exists; this combination means to match all values and all keys.
       * +optional
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object operator_ = "";
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public boolean hasOperator() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public java.lang.String getOperator() {
        java.lang.Object ref = operator_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            operator_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public com.google.protobuf.ByteString getOperatorBytes() {
        java.lang.Object ref = operator_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          operator_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperator(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder clearOperator() {
        bitField0_ = (bitField0_ & ~0x00000002);
        operator_ = getDefaultInstance().getOperator();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Operator represents a key's relationship to the value.
       * Valid operators are Exists and Equal. Defaults to Equal.
       * Exists is equivalent to wildcard for value, so that a pod can
       * tolerate all taints of a particular category.
       * +optional
       * </pre>
       *
       * <code>optional string operator = 2;</code>
       */
      public Builder setOperatorBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        operator_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object value_ = "";
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public boolean hasValue() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public java.lang.String getValue() {
        java.lang.Object ref = value_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            value_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public com.google.protobuf.ByteString getValueBytes() {
        java.lang.Object ref = value_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          value_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public Builder setValue(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public Builder clearValue() {
        bitField0_ = (bitField0_ & ~0x00000004);
        value_ = getDefaultInstance().getValue();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Value is the taint value the toleration matches to.
       * If the operator is Exists, the value should be empty, otherwise just a regular string.
       * +optional
       * </pre>
       *
       * <code>optional string value = 3;</code>
       */
      public Builder setValueBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        value_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object effect_ = "";
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public boolean hasEffect() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public java.lang.String getEffect() {
        java.lang.Object ref = effect_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            effect_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public com.google.protobuf.ByteString getEffectBytes() {
        java.lang.Object ref = effect_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          effect_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public Builder setEffect(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        effect_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public Builder clearEffect() {
        bitField0_ = (bitField0_ & ~0x00000008);
        effect_ = getDefaultInstance().getEffect();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Effect indicates the taint effect to match. Empty means match all taint effects.
       * When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
       * +optional
       * </pre>
       *
       * <code>optional string effect = 4;</code>
       */
      public Builder setEffectBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        effect_ = value;
        onChanged();
        return this;
      }

      private long tolerationSeconds_;
      /**
       *
       *
       * <pre>
       * TolerationSeconds represents the period of time the toleration (which must be
       * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
       * it is not set, which means tolerate the taint forever (do not evict). Zero and
       * negative values will be treated as 0 (evict immediately) by the system.
       * +optional
       * </pre>
       *
       * <code>optional int64 tolerationSeconds = 5;</code>
       */
      public boolean hasTolerationSeconds() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * TolerationSeconds represents the period of time the toleration (which must be
       * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
       * it is not set, which means tolerate the taint forever (do not evict). Zero and
       * negative values will be treated as 0 (evict immediately) by the system.
       * +optional
       * </pre>
       *
       * <code>optional int64 tolerationSeconds = 5;</code>
       */
      public long getTolerationSeconds() {
        return tolerationSeconds_;
      }
      /**
       *
       *
       * <pre>
       * TolerationSeconds represents the period of time the toleration (which must be
       * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
       * it is not set, which means tolerate the taint forever (do not evict). Zero and
       * negative values will be treated as 0 (evict immediately) by the system.
       * +optional
       * </pre>
       *
       * <code>optional int64 tolerationSeconds = 5;</code>
       */
      public Builder setTolerationSeconds(long value) {
        bitField0_ |= 0x00000010;
        tolerationSeconds_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * TolerationSeconds represents the period of time the toleration (which must be
       * of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
       * it is not set, which means tolerate the taint forever (do not evict). Zero and
       * negative values will be treated as 0 (evict immediately) by the system.
       * +optional
       * </pre>
       *
       * <code>optional int64 tolerationSeconds = 5;</code>
       */
      public Builder clearTolerationSeconds() {
        bitField0_ = (bitField0_ & ~0x00000010);
        tolerationSeconds_ = 0L;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Toleration)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Toleration)
    private static final io.kubernetes.client.proto.V1.Toleration DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Toleration();
    }

    public static io.kubernetes.client.proto.V1.Toleration getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Toleration> PARSER =
        new com.google.protobuf.AbstractParser<Toleration>() {
          @java.lang.Override
          public Toleration parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Toleration(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Toleration> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Toleration> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Toleration getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TopologySelectorLabelRequirementOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.TopologySelectorLabelRequirement)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    boolean hasKey();
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    com.google.protobuf.ByteString getKeyBytes();

    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    java.util.List<java.lang.String> getValuesList();
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    int getValuesCount();
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    java.lang.String getValues(int index);
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    com.google.protobuf.ByteString getValuesBytes(int index);
  }
  /**
   *
   *
   * <pre>
   * A topology selector requirement is a selector that matches given label.
   * This is an alpha feature and may change in the future.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.TopologySelectorLabelRequirement}
   */
  public static final class TopologySelectorLabelRequirement
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.TopologySelectorLabelRequirement)
      TopologySelectorLabelRequirementOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use TopologySelectorLabelRequirement.newBuilder() to construct.
    private TopologySelectorLabelRequirement(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private TopologySelectorLabelRequirement() {
      key_ = "";
      values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private TopologySelectorLabelRequirement(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                key_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  values_ = new com.google.protobuf.LazyStringArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                values_.add(bs);
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          values_ = values_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.class,
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder.class);
    }

    private int bitField0_;
    public static final int KEY_FIELD_NUMBER = 1;
    private volatile java.lang.Object key_;
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * The label key that the selector applies to.
     * </pre>
     *
     * <code>optional string key = 1;</code>
     */
    public com.google.protobuf.ByteString getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VALUES_FIELD_NUMBER = 2;
    private com.google.protobuf.LazyStringList values_;
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    public com.google.protobuf.ProtocolStringList getValuesList() {
      return values_;
    }
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    public int getValuesCount() {
      return values_.size();
    }
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    public java.lang.String getValues(int index) {
      return values_.get(index);
    }
    /**
     *
     *
     * <pre>
     * An array of string values. One value must match the label to be selected.
     * Each entry in Values is ORed.
     * </pre>
     *
     * <code>repeated string values = 2;</code>
     */
    public com.google.protobuf.ByteString getValuesBytes(int index) {
      return values_.getByteString(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, key_);
      }
      for (int i = 0; i < values_.size(); i++) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, values_.getRaw(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, key_);
      }
      {
        int dataSize = 0;
        for (int i = 0; i < values_.size(); i++) {
          dataSize += computeStringSizeNoTag(values_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getValuesList().size();
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement other =
          (io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement) obj;

      boolean result = true;
      result = result && (hasKey() == other.hasKey());
      if (hasKey()) {
        result = result && getKey().equals(other.getKey());
      }
      result = result && getValuesList().equals(other.getValuesList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasKey()) {
        hash = (37 * hash) + KEY_FIELD_NUMBER;
        hash = (53 * hash) + getKey().hashCode();
      }
      if (getValuesCount() > 0) {
        hash = (37 * hash) + VALUES_FIELD_NUMBER;
        hash = (53 * hash) + getValuesList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A topology selector requirement is a selector that matches given label.
     * This is an alpha feature and may change in the future.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.TopologySelectorLabelRequirement}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.TopologySelectorLabelRequirement)
        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.class,
                io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement build() {
        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement buildPartial() {
        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement result =
            new io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          values_ = values_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000002);
        }
        result.values_ = values_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement) {
          return mergeFrom((io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(
          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement other) {
        if (other
            == io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.getDefaultInstance())
          return this;
        if (other.hasKey()) {
          bitField0_ |= 0x00000001;
          key_ = other.key_;
          onChanged();
        }
        if (!other.values_.isEmpty()) {
          if (values_.isEmpty()) {
            values_ = other.values_;
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            ensureValuesIsMutable();
            values_.addAll(other.values_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object key_ = "";
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public com.google.protobuf.ByteString getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKey(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * The label key that the selector applies to.
       * </pre>
       *
       * <code>optional string key = 1;</code>
       */
      public Builder setKeyBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      private com.google.protobuf.LazyStringList values_ =
          com.google.protobuf.LazyStringArrayList.EMPTY;

      private void ensureValuesIsMutable() {
        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
          values_ = new com.google.protobuf.LazyStringArrayList(values_);
          bitField0_ |= 0x00000002;
        }
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public com.google.protobuf.ProtocolStringList getValuesList() {
        return values_.getUnmodifiableView();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public int getValuesCount() {
        return values_.size();
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public java.lang.String getValues(int index) {
        return values_.get(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public com.google.protobuf.ByteString getValuesBytes(int index) {
        return values_.getByteString(index);
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public Builder setValues(int index, java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.set(index, value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public Builder addValues(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public Builder addAllValues(java.lang.Iterable<java.lang.String> values) {
        ensureValuesIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(values, values_);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public Builder clearValues() {
        values_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * An array of string values. One value must match the label to be selected.
       * Each entry in Values is ORed.
       * </pre>
       *
       * <code>repeated string values = 2;</code>
       */
      public Builder addValuesBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureValuesIsMutable();
        values_.add(value);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.TopologySelectorLabelRequirement)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.TopologySelectorLabelRequirement)
    private static final io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement();
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<TopologySelectorLabelRequirement> PARSER =
        new com.google.protobuf.AbstractParser<TopologySelectorLabelRequirement>() {
          @java.lang.Override
          public TopologySelectorLabelRequirement parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new TopologySelectorLabelRequirement(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<TopologySelectorLabelRequirement> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TopologySelectorLabelRequirement> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TopologySelectorTermOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.TopologySelectorTerm)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
        getMatchLabelExpressionsList();
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement getMatchLabelExpressions(
        int index);
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    int getMatchLabelExpressionsCount();
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    java.util.List<
            ? extends io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>
        getMatchLabelExpressionsOrBuilderList();
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder
        getMatchLabelExpressionsOrBuilder(int index);
  }
  /**
   *
   *
   * <pre>
   * A topology selector term represents the result of label queries.
   * A null or empty topology selector term matches no objects.
   * The requirements of them are ANDed.
   * It provides a subset of functionality as NodeSelectorTerm.
   * This is an alpha feature and may change in the future.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.TopologySelectorTerm}
   */
  public static final class TopologySelectorTerm extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.TopologySelectorTerm)
      TopologySelectorTermOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use TopologySelectorTerm.newBuilder() to construct.
    private TopologySelectorTerm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private TopologySelectorTerm() {
      matchLabelExpressions_ = java.util.Collections.emptyList();
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private TopologySelectorTerm(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                  matchLabelExpressions_ =
                      new java.util.ArrayList<
                          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>();
                  mutable_bitField0_ |= 0x00000001;
                }
                matchLabelExpressions_.add(
                    input.readMessage(
                        io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.PARSER,
                        extensionRegistry));
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          matchLabelExpressions_ = java.util.Collections.unmodifiableList(matchLabelExpressions_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_TopologySelectorTerm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.TopologySelectorTerm.class,
              io.kubernetes.client.proto.V1.TopologySelectorTerm.Builder.class);
    }

    public static final int MATCHLABELEXPRESSIONS_FIELD_NUMBER = 1;
    private java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
        matchLabelExpressions_;
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    public java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
        getMatchLabelExpressionsList() {
      return matchLabelExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    public java.util.List<
            ? extends io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>
        getMatchLabelExpressionsOrBuilderList() {
      return matchLabelExpressions_;
    }
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    public int getMatchLabelExpressionsCount() {
      return matchLabelExpressions_.size();
    }
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement getMatchLabelExpressions(
        int index) {
      return matchLabelExpressions_.get(index);
    }
    /**
     *
     *
     * <pre>
     * A list of topology selector requirements by labels.
     * +optional
     * </pre>
     *
     * <code>
     * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
     * </code>
     */
    public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder
        getMatchLabelExpressionsOrBuilder(int index) {
      return matchLabelExpressions_.get(index);
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      for (int i = 0; i < matchLabelExpressions_.size(); i++) {
        output.writeMessage(1, matchLabelExpressions_.get(i));
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < matchLabelExpressions_.size(); i++) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                1, matchLabelExpressions_.get(i));
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.TopologySelectorTerm)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.TopologySelectorTerm other =
          (io.kubernetes.client.proto.V1.TopologySelectorTerm) obj;

      boolean result = true;
      result =
          result && getMatchLabelExpressionsList().equals(other.getMatchLabelExpressionsList());
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getMatchLabelExpressionsCount() > 0) {
        hash = (37 * hash) + MATCHLABELEXPRESSIONS_FIELD_NUMBER;
        hash = (53 * hash) + getMatchLabelExpressionsList().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.TopologySelectorTerm prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * A topology selector term represents the result of label queries.
     * A null or empty topology selector term matches no objects.
     * The requirements of them are ANDed.
     * It provides a subset of functionality as NodeSelectorTerm.
     * This is an alpha feature and may change in the future.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.TopologySelectorTerm}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.TopologySelectorTerm)
        io.kubernetes.client.proto.V1.TopologySelectorTermOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorTerm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.TopologySelectorTerm.class,
                io.kubernetes.client.proto.V1.TopologySelectorTerm.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.TopologySelectorTerm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getMatchLabelExpressionsFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (matchLabelExpressionsBuilder_ == null) {
          matchLabelExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          matchLabelExpressionsBuilder_.clear();
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.TopologySelectorTerm.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorTerm build() {
        io.kubernetes.client.proto.V1.TopologySelectorTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TopologySelectorTerm buildPartial() {
        io.kubernetes.client.proto.V1.TopologySelectorTerm result =
            new io.kubernetes.client.proto.V1.TopologySelectorTerm(this);
        int from_bitField0_ = bitField0_;
        if (matchLabelExpressionsBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            matchLabelExpressions_ = java.util.Collections.unmodifiableList(matchLabelExpressions_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.matchLabelExpressions_ = matchLabelExpressions_;
        } else {
          result.matchLabelExpressions_ = matchLabelExpressionsBuilder_.build();
        }
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.TopologySelectorTerm) {
          return mergeFrom((io.kubernetes.client.proto.V1.TopologySelectorTerm) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.TopologySelectorTerm other) {
        if (other == io.kubernetes.client.proto.V1.TopologySelectorTerm.getDefaultInstance())
          return this;
        if (matchLabelExpressionsBuilder_ == null) {
          if (!other.matchLabelExpressions_.isEmpty()) {
            if (matchLabelExpressions_.isEmpty()) {
              matchLabelExpressions_ = other.matchLabelExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureMatchLabelExpressionsIsMutable();
              matchLabelExpressions_.addAll(other.matchLabelExpressions_);
            }
            onChanged();
          }
        } else {
          if (!other.matchLabelExpressions_.isEmpty()) {
            if (matchLabelExpressionsBuilder_.isEmpty()) {
              matchLabelExpressionsBuilder_.dispose();
              matchLabelExpressionsBuilder_ = null;
              matchLabelExpressions_ = other.matchLabelExpressions_;
              bitField0_ = (bitField0_ & ~0x00000001);
              matchLabelExpressionsBuilder_ =
                  com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders
                      ? getMatchLabelExpressionsFieldBuilder()
                      : null;
            } else {
              matchLabelExpressionsBuilder_.addAllMessages(other.matchLabelExpressions_);
            }
          }
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.TopologySelectorTerm parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.TopologySelectorTerm) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
          matchLabelExpressions_ = java.util.Collections.emptyList();

      private void ensureMatchLabelExpressionsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          matchLabelExpressions_ =
              new java.util.ArrayList<
                  io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>(
                  matchLabelExpressions_);
          bitField0_ |= 0x00000001;
        }
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement,
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder,
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>
          matchLabelExpressionsBuilder_;

      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
          getMatchLabelExpressionsList() {
        if (matchLabelExpressionsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(matchLabelExpressions_);
        } else {
          return matchLabelExpressionsBuilder_.getMessageList();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public int getMatchLabelExpressionsCount() {
        if (matchLabelExpressionsBuilder_ == null) {
          return matchLabelExpressions_.size();
        } else {
          return matchLabelExpressionsBuilder_.getCount();
        }
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
          getMatchLabelExpressions(int index) {
        if (matchLabelExpressionsBuilder_ == null) {
          return matchLabelExpressions_.get(index);
        } else {
          return matchLabelExpressionsBuilder_.getMessage(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder setMatchLabelExpressions(
          int index, io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement value) {
        if (matchLabelExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.set(index, value);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder setMatchLabelExpressions(
          int index,
          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder builderForValue) {
        if (matchLabelExpressionsBuilder_ == null) {
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.set(index, builderForValue.build());
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder addMatchLabelExpressions(
          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement value) {
        if (matchLabelExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.add(value);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder addMatchLabelExpressions(
          int index, io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement value) {
        if (matchLabelExpressionsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.add(index, value);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder addMatchLabelExpressions(
          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder builderForValue) {
        if (matchLabelExpressionsBuilder_ == null) {
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.add(builderForValue.build());
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder addMatchLabelExpressions(
          int index,
          io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder builderForValue) {
        if (matchLabelExpressionsBuilder_ == null) {
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.add(index, builderForValue.build());
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder addAllMatchLabelExpressions(
          java.lang.Iterable<
                  ? extends io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement>
              values) {
        if (matchLabelExpressionsBuilder_ == null) {
          ensureMatchLabelExpressionsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(values, matchLabelExpressions_);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder clearMatchLabelExpressions() {
        if (matchLabelExpressionsBuilder_ == null) {
          matchLabelExpressions_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.clear();
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public Builder removeMatchLabelExpressions(int index) {
        if (matchLabelExpressionsBuilder_ == null) {
          ensureMatchLabelExpressionsIsMutable();
          matchLabelExpressions_.remove(index);
          onChanged();
        } else {
          matchLabelExpressionsBuilder_.remove(index);
        }
        return this;
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder
          getMatchLabelExpressionsBuilder(int index) {
        return getMatchLabelExpressionsFieldBuilder().getBuilder(index);
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder
          getMatchLabelExpressionsOrBuilder(int index) {
        if (matchLabelExpressionsBuilder_ == null) {
          return matchLabelExpressions_.get(index);
        } else {
          return matchLabelExpressionsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public java.util.List<
              ? extends io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>
          getMatchLabelExpressionsOrBuilderList() {
        if (matchLabelExpressionsBuilder_ != null) {
          return matchLabelExpressionsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(matchLabelExpressions_);
        }
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder
          addMatchLabelExpressionsBuilder() {
        return getMatchLabelExpressionsFieldBuilder()
            .addBuilder(
                io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder
          addMatchLabelExpressionsBuilder(int index) {
        return getMatchLabelExpressionsFieldBuilder()
            .addBuilder(
                index,
                io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement
                    .getDefaultInstance());
      }
      /**
       *
       *
       * <pre>
       * A list of topology selector requirements by labels.
       * +optional
       * </pre>
       *
       * <code>
       * repeated .k8s.io.api.core.v1.TopologySelectorLabelRequirement matchLabelExpressions = 1;
       * </code>
       */
      public java.util.List<io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder>
          getMatchLabelExpressionsBuilderList() {
        return getMatchLabelExpressionsFieldBuilder().getBuilderList();
      }

      private com.google.protobuf.RepeatedFieldBuilderV3<
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement,
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder,
              io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>
          getMatchLabelExpressionsFieldBuilder() {
        if (matchLabelExpressionsBuilder_ == null) {
          matchLabelExpressionsBuilder_ =
              new com.google.protobuf.RepeatedFieldBuilderV3<
                  io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement,
                  io.kubernetes.client.proto.V1.TopologySelectorLabelRequirement.Builder,
                  io.kubernetes.client.proto.V1.TopologySelectorLabelRequirementOrBuilder>(
                  matchLabelExpressions_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          matchLabelExpressions_ = null;
        }
        return matchLabelExpressionsBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.TopologySelectorTerm)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.TopologySelectorTerm)
    private static final io.kubernetes.client.proto.V1.TopologySelectorTerm DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.TopologySelectorTerm();
    }

    public static io.kubernetes.client.proto.V1.TopologySelectorTerm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<TopologySelectorTerm> PARSER =
        new com.google.protobuf.AbstractParser<TopologySelectorTerm>() {
          @java.lang.Override
          public TopologySelectorTerm parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new TopologySelectorTerm(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<TopologySelectorTerm> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TopologySelectorTerm> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.TopologySelectorTerm getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface TypedLocalObjectReferenceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.TypedLocalObjectReference)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    boolean hasApiGroup();
    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    java.lang.String getApiGroup();
    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    com.google.protobuf.ByteString getApiGroupBytes();

    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    boolean hasKind();
    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    java.lang.String getKind();
    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    com.google.protobuf.ByteString getKindBytes();

    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    com.google.protobuf.ByteString getNameBytes();
  }
  /**
   *
   *
   * <pre>
   * TypedLocalObjectReference contains enough information to let you locate the
   * typed referenced object inside the same namespace.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.TypedLocalObjectReference}
   */
  public static final class TypedLocalObjectReference extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.TypedLocalObjectReference)
      TypedLocalObjectReferenceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use TypedLocalObjectReference.newBuilder() to construct.
    private TypedLocalObjectReference(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private TypedLocalObjectReference() {
      apiGroup_ = "";
      kind_ = "";
      name_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private TypedLocalObjectReference(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                apiGroup_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                kind_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                name_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.TypedLocalObjectReference.class,
              io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder.class);
    }

    private int bitField0_;
    public static final int APIGROUP_FIELD_NUMBER = 1;
    private volatile java.lang.Object apiGroup_;
    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    public boolean hasApiGroup() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    public java.lang.String getApiGroup() {
      java.lang.Object ref = apiGroup_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          apiGroup_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * APIGroup is the group for the resource being referenced.
     * If APIGroup is not specified, the specified Kind must be in the core API group.
     * For any other third-party types, APIGroup is required.
     * +optional
     * </pre>
     *
     * <code>optional string apiGroup = 1;</code>
     */
    public com.google.protobuf.ByteString getApiGroupBytes() {
      java.lang.Object ref = apiGroup_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        apiGroup_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int KIND_FIELD_NUMBER = 2;
    private volatile java.lang.Object kind_;
    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    public boolean hasKind() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    public java.lang.String getKind() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          kind_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Kind is the type of resource being referenced
     * </pre>
     *
     * <code>optional string kind = 2;</code>
     */
    public com.google.protobuf.ByteString getKindBytes() {
      java.lang.Object ref = kind_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        kind_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Name is the name of resource being referenced
     * </pre>
     *
     * <code>optional string name = 3;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, apiGroup_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, kind_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, name_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, apiGroup_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, kind_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, name_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.TypedLocalObjectReference)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.TypedLocalObjectReference other =
          (io.kubernetes.client.proto.V1.TypedLocalObjectReference) obj;

      boolean result = true;
      result = result && (hasApiGroup() == other.hasApiGroup());
      if (hasApiGroup()) {
        result = result && getApiGroup().equals(other.getApiGroup());
      }
      result = result && (hasKind() == other.hasKind());
      if (hasKind()) {
        result = result && getKind().equals(other.getKind());
      }
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasApiGroup()) {
        hash = (37 * hash) + APIGROUP_FIELD_NUMBER;
        hash = (53 * hash) + getApiGroup().hashCode();
      }
      if (hasKind()) {
        hash = (37 * hash) + KIND_FIELD_NUMBER;
        hash = (53 * hash) + getKind().hashCode();
      }
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.TypedLocalObjectReference prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * TypedLocalObjectReference contains enough information to let you locate the
     * typed referenced object inside the same namespace.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.TypedLocalObjectReference}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.TypedLocalObjectReference)
        io.kubernetes.client.proto.V1.TypedLocalObjectReferenceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.TypedLocalObjectReference.class,
                io.kubernetes.client.proto.V1.TypedLocalObjectReference.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.TypedLocalObjectReference.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        apiGroup_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        kind_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TypedLocalObjectReference getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TypedLocalObjectReference build() {
        io.kubernetes.client.proto.V1.TypedLocalObjectReference result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.TypedLocalObjectReference buildPartial() {
        io.kubernetes.client.proto.V1.TypedLocalObjectReference result =
            new io.kubernetes.client.proto.V1.TypedLocalObjectReference(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.apiGroup_ = apiGroup_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.kind_ = kind_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.name_ = name_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.TypedLocalObjectReference) {
          return mergeFrom((io.kubernetes.client.proto.V1.TypedLocalObjectReference) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.TypedLocalObjectReference other) {
        if (other == io.kubernetes.client.proto.V1.TypedLocalObjectReference.getDefaultInstance())
          return this;
        if (other.hasApiGroup()) {
          bitField0_ |= 0x00000001;
          apiGroup_ = other.apiGroup_;
          onChanged();
        }
        if (other.hasKind()) {
          bitField0_ |= 0x00000002;
          kind_ = other.kind_;
          onChanged();
        }
        if (other.hasName()) {
          bitField0_ |= 0x00000004;
          name_ = other.name_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.TypedLocalObjectReference parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.TypedLocalObjectReference) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object apiGroup_ = "";
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public boolean hasApiGroup() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public java.lang.String getApiGroup() {
        java.lang.Object ref = apiGroup_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            apiGroup_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public com.google.protobuf.ByteString getApiGroupBytes() {
        java.lang.Object ref = apiGroup_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          apiGroup_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public Builder setApiGroup(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        apiGroup_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public Builder clearApiGroup() {
        bitField0_ = (bitField0_ & ~0x00000001);
        apiGroup_ = getDefaultInstance().getApiGroup();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * APIGroup is the group for the resource being referenced.
       * If APIGroup is not specified, the specified Kind must be in the core API group.
       * For any other third-party types, APIGroup is required.
       * +optional
       * </pre>
       *
       * <code>optional string apiGroup = 1;</code>
       */
      public Builder setApiGroupBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        apiGroup_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object kind_ = "";
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public boolean hasKind() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public java.lang.String getKind() {
        java.lang.Object ref = kind_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            kind_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public com.google.protobuf.ByteString getKindBytes() {
        java.lang.Object ref = kind_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          kind_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public Builder setKind(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public Builder clearKind() {
        bitField0_ = (bitField0_ & ~0x00000002);
        kind_ = getDefaultInstance().getKind();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Kind is the type of resource being referenced
       * </pre>
       *
       * <code>optional string kind = 2;</code>
       */
      public Builder setKindBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        kind_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Name is the name of resource being referenced
       * </pre>
       *
       * <code>optional string name = 3;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        name_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.TypedLocalObjectReference)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.TypedLocalObjectReference)
    private static final io.kubernetes.client.proto.V1.TypedLocalObjectReference DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.TypedLocalObjectReference();
    }

    public static io.kubernetes.client.proto.V1.TypedLocalObjectReference getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<TypedLocalObjectReference> PARSER =
        new com.google.protobuf.AbstractParser<TypedLocalObjectReference>() {
          @java.lang.Override
          public TypedLocalObjectReference parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new TypedLocalObjectReference(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<TypedLocalObjectReference> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<TypedLocalObjectReference> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.TypedLocalObjectReference getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.Volume)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    boolean hasVolumeSource();
    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    io.kubernetes.client.proto.V1.VolumeSource getVolumeSource();
    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    io.kubernetes.client.proto.V1.VolumeSourceOrBuilder getVolumeSourceOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Volume represents a named volume in a pod that may be accessed by any container in the pod.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.Volume}
   */
  public static final class Volume extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.Volume)
      VolumeOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use Volume.newBuilder() to construct.
    private Volume(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private Volume() {
      name_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private Volume(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.VolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = volumeSource_.toBuilder();
                }
                volumeSource_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(volumeSource_);
                  volumeSource_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Volume_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_Volume_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.Volume.class,
              io.kubernetes.client.proto.V1.Volume.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Volume's name.
     * Must be a DNS_LABEL and unique within the pod.
     * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int VOLUMESOURCE_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.VolumeSource volumeSource_;
    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    public boolean hasVolumeSource() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeSource getVolumeSource() {
      return volumeSource_ == null
          ? io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()
          : volumeSource_;
    }
    /**
     *
     *
     * <pre>
     * VolumeSource represents the location and type of the mounted volume.
     * If not specified, the Volume is implied to be an EmptyDir.
     * This implied behavior is deprecated and will be removed in a future version.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
     */
    public io.kubernetes.client.proto.V1.VolumeSourceOrBuilder getVolumeSourceOrBuilder() {
      return volumeSource_ == null
          ? io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()
          : volumeSource_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getVolumeSource());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getVolumeSource());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.Volume)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.Volume other = (io.kubernetes.client.proto.V1.Volume) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasVolumeSource() == other.hasVolumeSource());
      if (hasVolumeSource()) {
        result = result && getVolumeSource().equals(other.getVolumeSource());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasVolumeSource()) {
        hash = (37 * hash) + VOLUMESOURCE_FIELD_NUMBER;
        hash = (53 * hash) + getVolumeSource().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Volume parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Volume parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.Volume parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.Volume prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Volume represents a named volume in a pod that may be accessed by any container in the pod.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.Volume}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.Volume)
        io.kubernetes.client.proto.V1.VolumeOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Volume_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_Volume_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.Volume.class,
                io.kubernetes.client.proto.V1.Volume.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.Volume.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getVolumeSourceFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (volumeSourceBuilder_ == null) {
          volumeSource_ = null;
        } else {
          volumeSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes.client.proto.V1.internal_static_k8s_io_api_core_v1_Volume_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Volume getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.Volume.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Volume build() {
        io.kubernetes.client.proto.V1.Volume result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.Volume buildPartial() {
        io.kubernetes.client.proto.V1.Volume result =
            new io.kubernetes.client.proto.V1.Volume(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (volumeSourceBuilder_ == null) {
          result.volumeSource_ = volumeSource_;
        } else {
          result.volumeSource_ = volumeSourceBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.Volume) {
          return mergeFrom((io.kubernetes.client.proto.V1.Volume) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.Volume other) {
        if (other == io.kubernetes.client.proto.V1.Volume.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasVolumeSource()) {
          mergeVolumeSource(other.getVolumeSource());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.Volume parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.Volume) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Volume's name.
       * Must be a DNS_LABEL and unique within the pod.
       * More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.VolumeSource volumeSource_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeSource,
              io.kubernetes.client.proto.V1.VolumeSource.Builder,
              io.kubernetes.client.proto.V1.VolumeSourceOrBuilder>
          volumeSourceBuilder_;
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public boolean hasVolumeSource() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeSource getVolumeSource() {
        if (volumeSourceBuilder_ == null) {
          return volumeSource_ == null
              ? io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()
              : volumeSource_;
        } else {
          return volumeSourceBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public Builder setVolumeSource(io.kubernetes.client.proto.V1.VolumeSource value) {
        if (volumeSourceBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          volumeSource_ = value;
          onChanged();
        } else {
          volumeSourceBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public Builder setVolumeSource(
          io.kubernetes.client.proto.V1.VolumeSource.Builder builderForValue) {
        if (volumeSourceBuilder_ == null) {
          volumeSource_ = builderForValue.build();
          onChanged();
        } else {
          volumeSourceBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public Builder mergeVolumeSource(io.kubernetes.client.proto.V1.VolumeSource value) {
        if (volumeSourceBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && volumeSource_ != null
              && volumeSource_ != io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()) {
            volumeSource_ =
                io.kubernetes.client.proto.V1.VolumeSource.newBuilder(volumeSource_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            volumeSource_ = value;
          }
          onChanged();
        } else {
          volumeSourceBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public Builder clearVolumeSource() {
        if (volumeSourceBuilder_ == null) {
          volumeSource_ = null;
          onChanged();
        } else {
          volumeSourceBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeSource.Builder getVolumeSourceBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getVolumeSourceFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      public io.kubernetes.client.proto.V1.VolumeSourceOrBuilder getVolumeSourceOrBuilder() {
        if (volumeSourceBuilder_ != null) {
          return volumeSourceBuilder_.getMessageOrBuilder();
        } else {
          return volumeSource_ == null
              ? io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()
              : volumeSource_;
        }
      }
      /**
       *
       *
       * <pre>
       * VolumeSource represents the location and type of the mounted volume.
       * If not specified, the Volume is implied to be an EmptyDir.
       * This implied behavior is deprecated and will be removed in a future version.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VolumeSource volumeSource = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VolumeSource,
              io.kubernetes.client.proto.V1.VolumeSource.Builder,
              io.kubernetes.client.proto.V1.VolumeSourceOrBuilder>
          getVolumeSourceFieldBuilder() {
        if (volumeSourceBuilder_ == null) {
          volumeSourceBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VolumeSource,
                  io.kubernetes.client.proto.V1.VolumeSource.Builder,
                  io.kubernetes.client.proto.V1.VolumeSourceOrBuilder>(
                  getVolumeSource(), getParentForChildren(), isClean());
          volumeSource_ = null;
        }
        return volumeSourceBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.Volume)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.Volume)
    private static final io.kubernetes.client.proto.V1.Volume DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.Volume();
    }

    public static io.kubernetes.client.proto.V1.Volume getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<Volume> PARSER =
        new com.google.protobuf.AbstractParser<Volume>() {
          @java.lang.Override
          public Volume parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new Volume(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<Volume> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<Volume> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.Volume getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeDeviceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VolumeDevice)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    boolean hasDevicePath();
    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    java.lang.String getDevicePath();
    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    com.google.protobuf.ByteString getDevicePathBytes();
  }
  /**
   *
   *
   * <pre>
   * volumeDevice describes a mapping of a raw block device within a container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VolumeDevice}
   */
  public static final class VolumeDevice extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VolumeDevice)
      VolumeDeviceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VolumeDevice.newBuilder() to construct.
    private VolumeDevice(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VolumeDevice() {
      name_ = "";
      devicePath_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VolumeDevice(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                devicePath_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VolumeDevice_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VolumeDevice.class,
              io.kubernetes.client.proto.V1.VolumeDevice.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * name must match the name of a persistentVolumeClaim in the pod
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEVICEPATH_FIELD_NUMBER = 2;
    private volatile java.lang.Object devicePath_;
    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public boolean hasDevicePath() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public java.lang.String getDevicePath() {
      java.lang.Object ref = devicePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          devicePath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * devicePath is the path inside of the container that the device will be mapped to.
     * </pre>
     *
     * <code>optional string devicePath = 2;</code>
     */
    public com.google.protobuf.ByteString getDevicePathBytes() {
      java.lang.Object ref = devicePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        devicePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, devicePath_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, devicePath_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VolumeDevice)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VolumeDevice other =
          (io.kubernetes.client.proto.V1.VolumeDevice) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasDevicePath() == other.hasDevicePath());
      if (hasDevicePath()) {
        result = result && getDevicePath().equals(other.getDevicePath());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasDevicePath()) {
        hash = (37 * hash) + DEVICEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getDevicePath().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.VolumeDevice prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * volumeDevice describes a mapping of a raw block device within a container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VolumeDevice}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VolumeDevice)
        io.kubernetes.client.proto.V1.VolumeDeviceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VolumeDevice_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VolumeDevice.class,
                io.kubernetes.client.proto.V1.VolumeDevice.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.VolumeDevice.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        devicePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeDevice getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeDevice.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeDevice build() {
        io.kubernetes.client.proto.V1.VolumeDevice result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeDevice buildPartial() {
        io.kubernetes.client.proto.V1.VolumeDevice result =
            new io.kubernetes.client.proto.V1.VolumeDevice(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.devicePath_ = devicePath_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VolumeDevice) {
          return mergeFrom((io.kubernetes.client.proto.V1.VolumeDevice) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VolumeDevice other) {
        if (other == io.kubernetes.client.proto.V1.VolumeDevice.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasDevicePath()) {
          bitField0_ |= 0x00000002;
          devicePath_ = other.devicePath_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VolumeDevice parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.VolumeDevice) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * name must match the name of a persistentVolumeClaim in the pod
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object devicePath_ = "";
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public boolean hasDevicePath() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public java.lang.String getDevicePath() {
        java.lang.Object ref = devicePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            devicePath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public com.google.protobuf.ByteString getDevicePathBytes() {
        java.lang.Object ref = devicePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          devicePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder setDevicePath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        devicePath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder clearDevicePath() {
        bitField0_ = (bitField0_ & ~0x00000002);
        devicePath_ = getDefaultInstance().getDevicePath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * devicePath is the path inside of the container that the device will be mapped to.
       * </pre>
       *
       * <code>optional string devicePath = 2;</code>
       */
      public Builder setDevicePathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        devicePath_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VolumeDevice)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VolumeDevice)
    private static final io.kubernetes.client.proto.V1.VolumeDevice DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VolumeDevice();
    }

    public static io.kubernetes.client.proto.V1.VolumeDevice getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VolumeDevice> PARSER =
        new com.google.protobuf.AbstractParser<VolumeDevice>() {
          @java.lang.Override
          public VolumeDevice parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VolumeDevice(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VolumeDevice> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VolumeDevice> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VolumeDevice getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeMountOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VolumeMount)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    boolean hasName();
    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    java.lang.String getName();
    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    com.google.protobuf.ByteString getNameBytes();

    /**
     *
     *
     * <pre>
     * Mounted read-only if true, read-write otherwise (false or unspecified).
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    boolean hasReadOnly();
    /**
     *
     *
     * <pre>
     * Mounted read-only if true, read-write otherwise (false or unspecified).
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    boolean getReadOnly();

    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    boolean hasMountPath();
    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    java.lang.String getMountPath();
    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    com.google.protobuf.ByteString getMountPathBytes();

    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    boolean hasSubPath();
    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    java.lang.String getSubPath();
    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    com.google.protobuf.ByteString getSubPathBytes();

    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    boolean hasMountPropagation();
    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    java.lang.String getMountPropagation();
    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    com.google.protobuf.ByteString getMountPropagationBytes();
  }
  /**
   *
   *
   * <pre>
   * VolumeMount describes a mounting of a Volume within a container.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VolumeMount}
   */
  public static final class VolumeMount extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VolumeMount)
      VolumeMountOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VolumeMount.newBuilder() to construct.
    private VolumeMount(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VolumeMount() {
      name_ = "";
      readOnly_ = false;
      mountPath_ = "";
      subPath_ = "";
      mountPropagation_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VolumeMount(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                name_ = bs;
                break;
              }
            case 16:
              {
                bitField0_ |= 0x00000002;
                readOnly_ = input.readBool();
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                mountPath_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                subPath_ = bs;
                break;
              }
            case 42:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000010;
                mountPropagation_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VolumeMount_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VolumeMount_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VolumeMount.class,
              io.kubernetes.client.proto.V1.VolumeMount.Builder.class);
    }

    private int bitField0_;
    public static final int NAME_FIELD_NUMBER = 1;
    private volatile java.lang.Object name_;
    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public boolean hasName() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public java.lang.String getName() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          name_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * This must match the Name of a Volume.
     * </pre>
     *
     * <code>optional string name = 1;</code>
     */
    public com.google.protobuf.ByteString getNameBytes() {
      java.lang.Object ref = name_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        name_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int READONLY_FIELD_NUMBER = 2;
    private boolean readOnly_;
    /**
     *
     *
     * <pre>
     * Mounted read-only if true, read-write otherwise (false or unspecified).
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    public boolean hasReadOnly() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Mounted read-only if true, read-write otherwise (false or unspecified).
     * Defaults to false.
     * +optional
     * </pre>
     *
     * <code>optional bool readOnly = 2;</code>
     */
    public boolean getReadOnly() {
      return readOnly_;
    }

    public static final int MOUNTPATH_FIELD_NUMBER = 3;
    private volatile java.lang.Object mountPath_;
    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    public boolean hasMountPath() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    public java.lang.String getMountPath() {
      java.lang.Object ref = mountPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mountPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path within the container at which the volume should be mounted.  Must
     * not contain ':'.
     * </pre>
     *
     * <code>optional string mountPath = 3;</code>
     */
    public com.google.protobuf.ByteString getMountPathBytes() {
      java.lang.Object ref = mountPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        mountPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SUBPATH_FIELD_NUMBER = 4;
    private volatile java.lang.Object subPath_;
    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    public boolean hasSubPath() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    public java.lang.String getSubPath() {
      java.lang.Object ref = subPath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          subPath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path within the volume from which the container's volume should be mounted.
     * Defaults to "" (volume's root).
     * +optional
     * </pre>
     *
     * <code>optional string subPath = 4;</code>
     */
    public com.google.protobuf.ByteString getSubPathBytes() {
      java.lang.Object ref = subPath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        subPath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MOUNTPROPAGATION_FIELD_NUMBER = 5;
    private volatile java.lang.Object mountPropagation_;
    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    public boolean hasMountPropagation() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    public java.lang.String getMountPropagation() {
      java.lang.Object ref = mountPropagation_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mountPropagation_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * mountPropagation determines how mounts are propagated from the host
     * to container and the other way around.
     * When not set, MountPropagationNone is used.
     * This field is beta in 1.10.
     * +optional
     * </pre>
     *
     * <code>optional string mountPropagation = 5;</code>
     */
    public com.google.protobuf.ByteString getMountPropagationBytes() {
      java.lang.Object ref = mountPropagation_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        mountPropagation_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(2, readOnly_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, mountPath_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, subPath_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 5, mountPropagation_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeBoolSize(2, readOnly_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, mountPath_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, subPath_);
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(5, mountPropagation_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VolumeMount)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VolumeMount other =
          (io.kubernetes.client.proto.V1.VolumeMount) obj;

      boolean result = true;
      result = result && (hasName() == other.hasName());
      if (hasName()) {
        result = result && getName().equals(other.getName());
      }
      result = result && (hasReadOnly() == other.hasReadOnly());
      if (hasReadOnly()) {
        result = result && (getReadOnly() == other.getReadOnly());
      }
      result = result && (hasMountPath() == other.hasMountPath());
      if (hasMountPath()) {
        result = result && getMountPath().equals(other.getMountPath());
      }
      result = result && (hasSubPath() == other.hasSubPath());
      if (hasSubPath()) {
        result = result && getSubPath().equals(other.getSubPath());
      }
      result = result && (hasMountPropagation() == other.hasMountPropagation());
      if (hasMountPropagation()) {
        result = result && getMountPropagation().equals(other.getMountPropagation());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasName()) {
        hash = (37 * hash) + NAME_FIELD_NUMBER;
        hash = (53 * hash) + getName().hashCode();
      }
      if (hasReadOnly()) {
        hash = (37 * hash) + READONLY_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashBoolean(getReadOnly());
      }
      if (hasMountPath()) {
        hash = (37 * hash) + MOUNTPATH_FIELD_NUMBER;
        hash = (53 * hash) + getMountPath().hashCode();
      }
      if (hasSubPath()) {
        hash = (37 * hash) + SUBPATH_FIELD_NUMBER;
        hash = (53 * hash) + getSubPath().hashCode();
      }
      if (hasMountPropagation()) {
        hash = (37 * hash) + MOUNTPROPAGATION_FIELD_NUMBER;
        hash = (53 * hash) + getMountPropagation().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeMount parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.VolumeMount prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * VolumeMount describes a mounting of a Volume within a container.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VolumeMount}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VolumeMount)
        io.kubernetes.client.proto.V1.VolumeMountOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeMount_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VolumeMount_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VolumeMount.class,
                io.kubernetes.client.proto.V1.VolumeMount.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.VolumeMount.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        name_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        readOnly_ = false;
        bitField0_ = (bitField0_ & ~0x00000002);
        mountPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        subPath_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        mountPropagation_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeMount_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeMount getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeMount.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeMount build() {
        io.kubernetes.client.proto.V1.VolumeMount result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeMount buildPartial() {
        io.kubernetes.client.proto.V1.VolumeMount result =
            new io.kubernetes.client.proto.V1.VolumeMount(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.name_ = name_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.readOnly_ = readOnly_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.mountPath_ = mountPath_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.subPath_ = subPath_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.mountPropagation_ = mountPropagation_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VolumeMount) {
          return mergeFrom((io.kubernetes.client.proto.V1.VolumeMount) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VolumeMount other) {
        if (other == io.kubernetes.client.proto.V1.VolumeMount.getDefaultInstance()) return this;
        if (other.hasName()) {
          bitField0_ |= 0x00000001;
          name_ = other.name_;
          onChanged();
        }
        if (other.hasReadOnly()) {
          setReadOnly(other.getReadOnly());
        }
        if (other.hasMountPath()) {
          bitField0_ |= 0x00000004;
          mountPath_ = other.mountPath_;
          onChanged();
        }
        if (other.hasSubPath()) {
          bitField0_ |= 0x00000008;
          subPath_ = other.subPath_;
          onChanged();
        }
        if (other.hasMountPropagation()) {
          bitField0_ |= 0x00000010;
          mountPropagation_ = other.mountPropagation_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VolumeMount parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.VolumeMount) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object name_ = "";
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public com.google.protobuf.ByteString getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder clearName() {
        bitField0_ = (bitField0_ & ~0x00000001);
        name_ = getDefaultInstance().getName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * This must match the Name of a Volume.
       * </pre>
       *
       * <code>optional string name = 1;</code>
       */
      public Builder setNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        name_ = value;
        onChanged();
        return this;
      }

      private boolean readOnly_;
      /**
       *
       *
       * <pre>
       * Mounted read-only if true, read-write otherwise (false or unspecified).
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public boolean hasReadOnly() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Mounted read-only if true, read-write otherwise (false or unspecified).
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public boolean getReadOnly() {
        return readOnly_;
      }
      /**
       *
       *
       * <pre>
       * Mounted read-only if true, read-write otherwise (false or unspecified).
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public Builder setReadOnly(boolean value) {
        bitField0_ |= 0x00000002;
        readOnly_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Mounted read-only if true, read-write otherwise (false or unspecified).
       * Defaults to false.
       * +optional
       * </pre>
       *
       * <code>optional bool readOnly = 2;</code>
       */
      public Builder clearReadOnly() {
        bitField0_ = (bitField0_ & ~0x00000002);
        readOnly_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object mountPath_ = "";
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public boolean hasMountPath() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public java.lang.String getMountPath() {
        java.lang.Object ref = mountPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mountPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public com.google.protobuf.ByteString getMountPathBytes() {
        java.lang.Object ref = mountPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          mountPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public Builder setMountPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        mountPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public Builder clearMountPath() {
        bitField0_ = (bitField0_ & ~0x00000004);
        mountPath_ = getDefaultInstance().getMountPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path within the container at which the volume should be mounted.  Must
       * not contain ':'.
       * </pre>
       *
       * <code>optional string mountPath = 3;</code>
       */
      public Builder setMountPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        mountPath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object subPath_ = "";
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public boolean hasSubPath() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public java.lang.String getSubPath() {
        java.lang.Object ref = subPath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            subPath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public com.google.protobuf.ByteString getSubPathBytes() {
        java.lang.Object ref = subPath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          subPath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public Builder setSubPath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        subPath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public Builder clearSubPath() {
        bitField0_ = (bitField0_ & ~0x00000008);
        subPath_ = getDefaultInstance().getSubPath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path within the volume from which the container's volume should be mounted.
       * Defaults to "" (volume's root).
       * +optional
       * </pre>
       *
       * <code>optional string subPath = 4;</code>
       */
      public Builder setSubPathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        subPath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object mountPropagation_ = "";
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public boolean hasMountPropagation() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public java.lang.String getMountPropagation() {
        java.lang.Object ref = mountPropagation_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mountPropagation_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public com.google.protobuf.ByteString getMountPropagationBytes() {
        java.lang.Object ref = mountPropagation_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          mountPropagation_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public Builder setMountPropagation(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        mountPropagation_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public Builder clearMountPropagation() {
        bitField0_ = (bitField0_ & ~0x00000010);
        mountPropagation_ = getDefaultInstance().getMountPropagation();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * mountPropagation determines how mounts are propagated from the host
       * to container and the other way around.
       * When not set, MountPropagationNone is used.
       * This field is beta in 1.10.
       * +optional
       * </pre>
       *
       * <code>optional string mountPropagation = 5;</code>
       */
      public Builder setMountPropagationBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000010;
        mountPropagation_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VolumeMount)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VolumeMount)
    private static final io.kubernetes.client.proto.V1.VolumeMount DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VolumeMount();
    }

    public static io.kubernetes.client.proto.V1.VolumeMount getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VolumeMount> PARSER =
        new com.google.protobuf.AbstractParser<VolumeMount>() {
          @java.lang.Override
          public VolumeMount parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VolumeMount(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VolumeMount> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VolumeMount> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VolumeMount getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeNodeAffinityOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VolumeNodeAffinity)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    boolean hasRequired();
    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelector getRequired();
    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    io.kubernetes.client.proto.V1.NodeSelectorOrBuilder getRequiredOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VolumeNodeAffinity}
   */
  public static final class VolumeNodeAffinity extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VolumeNodeAffinity)
      VolumeNodeAffinityOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VolumeNodeAffinity.newBuilder() to construct.
    private VolumeNodeAffinity(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VolumeNodeAffinity() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VolumeNodeAffinity(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.NodeSelector.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = required_.toBuilder();
                }
                required_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NodeSelector.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(required_);
                  required_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VolumeNodeAffinity.class,
              io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder.class);
    }

    private int bitField0_;
    public static final int REQUIRED_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.NodeSelector required_;
    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    public boolean hasRequired() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelector getRequired() {
      return required_ == null
          ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
          : required_;
    }
    /**
     *
     *
     * <pre>
     * Required specifies hard node constraints that must be met.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
     */
    public io.kubernetes.client.proto.V1.NodeSelectorOrBuilder getRequiredOrBuilder() {
      return required_ == null
          ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
          : required_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getRequired());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getRequired());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VolumeNodeAffinity)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VolumeNodeAffinity other =
          (io.kubernetes.client.proto.V1.VolumeNodeAffinity) obj;

      boolean result = true;
      result = result && (hasRequired() == other.hasRequired());
      if (hasRequired()) {
        result = result && getRequired().equals(other.getRequired());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasRequired()) {
        hash = (37 * hash) + REQUIRED_FIELD_NUMBER;
        hash = (53 * hash) + getRequired().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.VolumeNodeAffinity prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VolumeNodeAffinity}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VolumeNodeAffinity)
        io.kubernetes.client.proto.V1.VolumeNodeAffinityOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VolumeNodeAffinity.class,
                io.kubernetes.client.proto.V1.VolumeNodeAffinity.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.VolumeNodeAffinity.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getRequiredFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (requiredBuilder_ == null) {
          required_ = null;
        } else {
          requiredBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeNodeAffinity getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeNodeAffinity build() {
        io.kubernetes.client.proto.V1.VolumeNodeAffinity result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeNodeAffinity buildPartial() {
        io.kubernetes.client.proto.V1.VolumeNodeAffinity result =
            new io.kubernetes.client.proto.V1.VolumeNodeAffinity(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (requiredBuilder_ == null) {
          result.required_ = required_;
        } else {
          result.required_ = requiredBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VolumeNodeAffinity) {
          return mergeFrom((io.kubernetes.client.proto.V1.VolumeNodeAffinity) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VolumeNodeAffinity other) {
        if (other == io.kubernetes.client.proto.V1.VolumeNodeAffinity.getDefaultInstance())
          return this;
        if (other.hasRequired()) {
          mergeRequired(other.getRequired());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VolumeNodeAffinity parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.VolumeNodeAffinity) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.NodeSelector required_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelector,
              io.kubernetes.client.proto.V1.NodeSelector.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>
          requiredBuilder_;
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public boolean hasRequired() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelector getRequired() {
        if (requiredBuilder_ == null) {
          return required_ == null
              ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
              : required_;
        } else {
          return requiredBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public Builder setRequired(io.kubernetes.client.proto.V1.NodeSelector value) {
        if (requiredBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          required_ = value;
          onChanged();
        } else {
          requiredBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public Builder setRequired(
          io.kubernetes.client.proto.V1.NodeSelector.Builder builderForValue) {
        if (requiredBuilder_ == null) {
          required_ = builderForValue.build();
          onChanged();
        } else {
          requiredBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public Builder mergeRequired(io.kubernetes.client.proto.V1.NodeSelector value) {
        if (requiredBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && required_ != null
              && required_ != io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()) {
            required_ =
                io.kubernetes.client.proto.V1.NodeSelector.newBuilder(required_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            required_ = value;
          }
          onChanged();
        } else {
          requiredBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public Builder clearRequired() {
        if (requiredBuilder_ == null) {
          required_ = null;
          onChanged();
        } else {
          requiredBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelector.Builder getRequiredBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getRequiredFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      public io.kubernetes.client.proto.V1.NodeSelectorOrBuilder getRequiredOrBuilder() {
        if (requiredBuilder_ != null) {
          return requiredBuilder_.getMessageOrBuilder();
        } else {
          return required_ == null
              ? io.kubernetes.client.proto.V1.NodeSelector.getDefaultInstance()
              : required_;
        }
      }
      /**
       *
       *
       * <pre>
       * Required specifies hard node constraints that must be met.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NodeSelector required = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NodeSelector,
              io.kubernetes.client.proto.V1.NodeSelector.Builder,
              io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>
          getRequiredFieldBuilder() {
        if (requiredBuilder_ == null) {
          requiredBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NodeSelector,
                  io.kubernetes.client.proto.V1.NodeSelector.Builder,
                  io.kubernetes.client.proto.V1.NodeSelectorOrBuilder>(
                  getRequired(), getParentForChildren(), isClean());
          required_ = null;
        }
        return requiredBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VolumeNodeAffinity)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VolumeNodeAffinity)
    private static final io.kubernetes.client.proto.V1.VolumeNodeAffinity DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VolumeNodeAffinity();
    }

    public static io.kubernetes.client.proto.V1.VolumeNodeAffinity getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VolumeNodeAffinity> PARSER =
        new com.google.protobuf.AbstractParser<VolumeNodeAffinity>() {
          @java.lang.Override
          public VolumeNodeAffinity parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VolumeNodeAffinity(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VolumeNodeAffinity> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VolumeNodeAffinity> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VolumeNodeAffinity getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeProjectionOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VolumeProjection)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    boolean hasSecret();
    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    io.kubernetes.client.proto.V1.SecretProjection getSecret();
    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    io.kubernetes.client.proto.V1.SecretProjectionOrBuilder getSecretOrBuilder();

    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    boolean hasDownwardAPI();
    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIProjection getDownwardAPI();
    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder getDownwardAPIOrBuilder();

    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    boolean hasConfigMap();
    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapProjection getConfigMap();
    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder getConfigMapOrBuilder();

    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    boolean hasServiceAccountToken();
    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1.ServiceAccountTokenProjection getServiceAccountToken();
    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder
        getServiceAccountTokenOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Projection that may be projected along with other supported volume types
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VolumeProjection}
   */
  public static final class VolumeProjection extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VolumeProjection)
      VolumeProjectionOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VolumeProjection.newBuilder() to construct.
    private VolumeProjection(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VolumeProjection() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VolumeProjection(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.SecretProjection.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = secret_.toBuilder();
                }
                secret_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretProjection.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secret_);
                  secret_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = downwardAPI_.toBuilder();
                }
                downwardAPI_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.DownwardAPIProjection.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(downwardAPI_);
                  downwardAPI_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.ConfigMapProjection.Builder subBuilder = null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = configMap_.toBuilder();
                }
                configMap_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMapProjection.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configMap_);
                  configMap_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = serviceAccountToken_.toBuilder();
                }
                serviceAccountToken_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(serviceAccountToken_);
                  serviceAccountToken_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VolumeProjection_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VolumeProjection.class,
              io.kubernetes.client.proto.V1.VolumeProjection.Builder.class);
    }

    private int bitField0_;
    public static final int SECRET_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.SecretProjection secret_;
    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    public boolean hasSecret() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    public io.kubernetes.client.proto.V1.SecretProjection getSecret() {
      return secret_ == null
          ? io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance()
          : secret_;
    }
    /**
     *
     *
     * <pre>
     * information about the secret data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
     */
    public io.kubernetes.client.proto.V1.SecretProjectionOrBuilder getSecretOrBuilder() {
      return secret_ == null
          ? io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance()
          : secret_;
    }

    public static final int DOWNWARDAPI_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.DownwardAPIProjection downwardAPI_;
    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    public boolean hasDownwardAPI() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIProjection getDownwardAPI() {
      return downwardAPI_ == null
          ? io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance()
          : downwardAPI_;
    }
    /**
     *
     *
     * <pre>
     * information about the downwardAPI data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder getDownwardAPIOrBuilder() {
      return downwardAPI_ == null
          ? io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance()
          : downwardAPI_;
    }

    public static final int CONFIGMAP_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.ConfigMapProjection configMap_;
    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    public boolean hasConfigMap() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapProjection getConfigMap() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance()
          : configMap_;
    }
    /**
     *
     *
     * <pre>
     * information about the configMap data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder getConfigMapOrBuilder() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance()
          : configMap_;
    }

    public static final int SERVICEACCOUNTTOKEN_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.ServiceAccountTokenProjection serviceAccountToken_;
    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    public boolean hasServiceAccountToken() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection getServiceAccountToken() {
      return serviceAccountToken_ == null
          ? io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance()
          : serviceAccountToken_;
    }
    /**
     *
     *
     * <pre>
     * information about the serviceAccountToken data to project
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder
        getServiceAccountTokenOrBuilder() {
      return serviceAccountToken_ == null
          ? io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance()
          : serviceAccountToken_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getSecret());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getDownwardAPI());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getConfigMap());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getServiceAccountToken());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getSecret());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getDownwardAPI());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getConfigMap());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(4, getServiceAccountToken());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VolumeProjection)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VolumeProjection other =
          (io.kubernetes.client.proto.V1.VolumeProjection) obj;

      boolean result = true;
      result = result && (hasSecret() == other.hasSecret());
      if (hasSecret()) {
        result = result && getSecret().equals(other.getSecret());
      }
      result = result && (hasDownwardAPI() == other.hasDownwardAPI());
      if (hasDownwardAPI()) {
        result = result && getDownwardAPI().equals(other.getDownwardAPI());
      }
      result = result && (hasConfigMap() == other.hasConfigMap());
      if (hasConfigMap()) {
        result = result && getConfigMap().equals(other.getConfigMap());
      }
      result = result && (hasServiceAccountToken() == other.hasServiceAccountToken());
      if (hasServiceAccountToken()) {
        result = result && getServiceAccountToken().equals(other.getServiceAccountToken());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasSecret()) {
        hash = (37 * hash) + SECRET_FIELD_NUMBER;
        hash = (53 * hash) + getSecret().hashCode();
      }
      if (hasDownwardAPI()) {
        hash = (37 * hash) + DOWNWARDAPI_FIELD_NUMBER;
        hash = (53 * hash) + getDownwardAPI().hashCode();
      }
      if (hasConfigMap()) {
        hash = (37 * hash) + CONFIGMAP_FIELD_NUMBER;
        hash = (53 * hash) + getConfigMap().hashCode();
      }
      if (hasServiceAccountToken()) {
        hash = (37 * hash) + SERVICEACCOUNTTOKEN_FIELD_NUMBER;
        hash = (53 * hash) + getServiceAccountToken().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.VolumeProjection prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Projection that may be projected along with other supported volume types
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VolumeProjection}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VolumeProjection)
        io.kubernetes.client.proto.V1.VolumeProjectionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VolumeProjection_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VolumeProjection.class,
                io.kubernetes.client.proto.V1.VolumeProjection.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.VolumeProjection.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getSecretFieldBuilder();
          getDownwardAPIFieldBuilder();
          getConfigMapFieldBuilder();
          getServiceAccountTokenFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (secretBuilder_ == null) {
          secret_ = null;
        } else {
          secretBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = null;
        } else {
          downwardAPIBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (configMapBuilder_ == null) {
          configMap_ = null;
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (serviceAccountTokenBuilder_ == null) {
          serviceAccountToken_ = null;
        } else {
          serviceAccountTokenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeProjection getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeProjection.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeProjection build() {
        io.kubernetes.client.proto.V1.VolumeProjection result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeProjection buildPartial() {
        io.kubernetes.client.proto.V1.VolumeProjection result =
            new io.kubernetes.client.proto.V1.VolumeProjection(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (secretBuilder_ == null) {
          result.secret_ = secret_;
        } else {
          result.secret_ = secretBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (downwardAPIBuilder_ == null) {
          result.downwardAPI_ = downwardAPI_;
        } else {
          result.downwardAPI_ = downwardAPIBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (configMapBuilder_ == null) {
          result.configMap_ = configMap_;
        } else {
          result.configMap_ = configMapBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (serviceAccountTokenBuilder_ == null) {
          result.serviceAccountToken_ = serviceAccountToken_;
        } else {
          result.serviceAccountToken_ = serviceAccountTokenBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VolumeProjection) {
          return mergeFrom((io.kubernetes.client.proto.V1.VolumeProjection) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VolumeProjection other) {
        if (other == io.kubernetes.client.proto.V1.VolumeProjection.getDefaultInstance())
          return this;
        if (other.hasSecret()) {
          mergeSecret(other.getSecret());
        }
        if (other.hasDownwardAPI()) {
          mergeDownwardAPI(other.getDownwardAPI());
        }
        if (other.hasConfigMap()) {
          mergeConfigMap(other.getConfigMap());
        }
        if (other.hasServiceAccountToken()) {
          mergeServiceAccountToken(other.getServiceAccountToken());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VolumeProjection parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.VolumeProjection) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.SecretProjection secret_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretProjection,
              io.kubernetes.client.proto.V1.SecretProjection.Builder,
              io.kubernetes.client.proto.V1.SecretProjectionOrBuilder>
          secretBuilder_;
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public boolean hasSecret() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SecretProjection getSecret() {
        if (secretBuilder_ == null) {
          return secret_ == null
              ? io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance()
              : secret_;
        } else {
          return secretBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public Builder setSecret(io.kubernetes.client.proto.V1.SecretProjection value) {
        if (secretBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secret_ = value;
          onChanged();
        } else {
          secretBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public Builder setSecret(
          io.kubernetes.client.proto.V1.SecretProjection.Builder builderForValue) {
        if (secretBuilder_ == null) {
          secret_ = builderForValue.build();
          onChanged();
        } else {
          secretBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public Builder mergeSecret(io.kubernetes.client.proto.V1.SecretProjection value) {
        if (secretBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && secret_ != null
              && secret_ != io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance()) {
            secret_ =
                io.kubernetes.client.proto.V1.SecretProjection.newBuilder(secret_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secret_ = value;
          }
          onChanged();
        } else {
          secretBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public Builder clearSecret() {
        if (secretBuilder_ == null) {
          secret_ = null;
          onChanged();
        } else {
          secretBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SecretProjection.Builder getSecretBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getSecretFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      public io.kubernetes.client.proto.V1.SecretProjectionOrBuilder getSecretOrBuilder() {
        if (secretBuilder_ != null) {
          return secretBuilder_.getMessageOrBuilder();
        } else {
          return secret_ == null
              ? io.kubernetes.client.proto.V1.SecretProjection.getDefaultInstance()
              : secret_;
        }
      }
      /**
       *
       *
       * <pre>
       * information about the secret data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretProjection secret = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretProjection,
              io.kubernetes.client.proto.V1.SecretProjection.Builder,
              io.kubernetes.client.proto.V1.SecretProjectionOrBuilder>
          getSecretFieldBuilder() {
        if (secretBuilder_ == null) {
          secretBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretProjection,
                  io.kubernetes.client.proto.V1.SecretProjection.Builder,
                  io.kubernetes.client.proto.V1.SecretProjectionOrBuilder>(
                  getSecret(), getParentForChildren(), isClean());
          secret_ = null;
        }
        return secretBuilder_;
      }

      private io.kubernetes.client.proto.V1.DownwardAPIProjection downwardAPI_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIProjection,
              io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder>
          downwardAPIBuilder_;
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public boolean hasDownwardAPI() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIProjection getDownwardAPI() {
        if (downwardAPIBuilder_ == null) {
          return downwardAPI_ == null
              ? io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance()
              : downwardAPI_;
        } else {
          return downwardAPIBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public Builder setDownwardAPI(io.kubernetes.client.proto.V1.DownwardAPIProjection value) {
        if (downwardAPIBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          downwardAPI_ = value;
          onChanged();
        } else {
          downwardAPIBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public Builder setDownwardAPI(
          io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder builderForValue) {
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = builderForValue.build();
          onChanged();
        } else {
          downwardAPIBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public Builder mergeDownwardAPI(io.kubernetes.client.proto.V1.DownwardAPIProjection value) {
        if (downwardAPIBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && downwardAPI_ != null
              && downwardAPI_
                  != io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance()) {
            downwardAPI_ =
                io.kubernetes.client.proto.V1.DownwardAPIProjection.newBuilder(downwardAPI_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            downwardAPI_ = value;
          }
          onChanged();
        } else {
          downwardAPIBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public Builder clearDownwardAPI() {
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = null;
          onChanged();
        } else {
          downwardAPIBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder getDownwardAPIBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getDownwardAPIFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder
          getDownwardAPIOrBuilder() {
        if (downwardAPIBuilder_ != null) {
          return downwardAPIBuilder_.getMessageOrBuilder();
        } else {
          return downwardAPI_ == null
              ? io.kubernetes.client.proto.V1.DownwardAPIProjection.getDefaultInstance()
              : downwardAPI_;
        }
      }
      /**
       *
       *
       * <pre>
       * information about the downwardAPI data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIProjection downwardAPI = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIProjection,
              io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder>
          getDownwardAPIFieldBuilder() {
        if (downwardAPIBuilder_ == null) {
          downwardAPIBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.DownwardAPIProjection,
                  io.kubernetes.client.proto.V1.DownwardAPIProjection.Builder,
                  io.kubernetes.client.proto.V1.DownwardAPIProjectionOrBuilder>(
                  getDownwardAPI(), getParentForChildren(), isClean());
          downwardAPI_ = null;
        }
        return downwardAPIBuilder_;
      }

      private io.kubernetes.client.proto.V1.ConfigMapProjection configMap_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapProjection,
              io.kubernetes.client.proto.V1.ConfigMapProjection.Builder,
              io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder>
          configMapBuilder_;
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public boolean hasConfigMap() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapProjection getConfigMap() {
        if (configMapBuilder_ == null) {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance()
              : configMap_;
        } else {
          return configMapBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public Builder setConfigMap(io.kubernetes.client.proto.V1.ConfigMapProjection value) {
        if (configMapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configMap_ = value;
          onChanged();
        } else {
          configMapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public Builder setConfigMap(
          io.kubernetes.client.proto.V1.ConfigMapProjection.Builder builderForValue) {
        if (configMapBuilder_ == null) {
          configMap_ = builderForValue.build();
          onChanged();
        } else {
          configMapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public Builder mergeConfigMap(io.kubernetes.client.proto.V1.ConfigMapProjection value) {
        if (configMapBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && configMap_ != null
              && configMap_
                  != io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance()) {
            configMap_ =
                io.kubernetes.client.proto.V1.ConfigMapProjection.newBuilder(configMap_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configMap_ = value;
          }
          onChanged();
        } else {
          configMapBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public Builder clearConfigMap() {
        if (configMapBuilder_ == null) {
          configMap_ = null;
          onChanged();
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapProjection.Builder getConfigMapBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getConfigMapFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder getConfigMapOrBuilder() {
        if (configMapBuilder_ != null) {
          return configMapBuilder_.getMessageOrBuilder();
        } else {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapProjection.getDefaultInstance()
              : configMap_;
        }
      }
      /**
       *
       *
       * <pre>
       * information about the configMap data to project
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapProjection configMap = 3;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapProjection,
              io.kubernetes.client.proto.V1.ConfigMapProjection.Builder,
              io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder>
          getConfigMapFieldBuilder() {
        if (configMapBuilder_ == null) {
          configMapBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMapProjection,
                  io.kubernetes.client.proto.V1.ConfigMapProjection.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapProjectionOrBuilder>(
                  getConfigMap(), getParentForChildren(), isClean());
          configMap_ = null;
        }
        return configMapBuilder_;
      }

      private io.kubernetes.client.proto.V1.ServiceAccountTokenProjection serviceAccountToken_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection,
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder,
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder>
          serviceAccountTokenBuilder_;
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public boolean hasServiceAccountToken() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection getServiceAccountToken() {
        if (serviceAccountTokenBuilder_ == null) {
          return serviceAccountToken_ == null
              ? io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance()
              : serviceAccountToken_;
        } else {
          return serviceAccountTokenBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public Builder setServiceAccountToken(
          io.kubernetes.client.proto.V1.ServiceAccountTokenProjection value) {
        if (serviceAccountTokenBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          serviceAccountToken_ = value;
          onChanged();
        } else {
          serviceAccountTokenBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public Builder setServiceAccountToken(
          io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder builderForValue) {
        if (serviceAccountTokenBuilder_ == null) {
          serviceAccountToken_ = builderForValue.build();
          onChanged();
        } else {
          serviceAccountTokenBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public Builder mergeServiceAccountToken(
          io.kubernetes.client.proto.V1.ServiceAccountTokenProjection value) {
        if (serviceAccountTokenBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && serviceAccountToken_ != null
              && serviceAccountToken_
                  != io.kubernetes.client.proto.V1.ServiceAccountTokenProjection
                      .getDefaultInstance()) {
            serviceAccountToken_ =
                io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.newBuilder(
                        serviceAccountToken_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            serviceAccountToken_ = value;
          }
          onChanged();
        } else {
          serviceAccountTokenBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public Builder clearServiceAccountToken() {
        if (serviceAccountTokenBuilder_ == null) {
          serviceAccountToken_ = null;
          onChanged();
        } else {
          serviceAccountTokenBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder
          getServiceAccountTokenBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getServiceAccountTokenFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder
          getServiceAccountTokenOrBuilder() {
        if (serviceAccountTokenBuilder_ != null) {
          return serviceAccountTokenBuilder_.getMessageOrBuilder();
        } else {
          return serviceAccountToken_ == null
              ? io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.getDefaultInstance()
              : serviceAccountToken_;
        }
      }
      /**
       *
       *
       * <pre>
       * information about the serviceAccountToken data to project
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.ServiceAccountTokenProjection serviceAccountToken = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection,
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder,
              io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder>
          getServiceAccountTokenFieldBuilder() {
        if (serviceAccountTokenBuilder_ == null) {
          serviceAccountTokenBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ServiceAccountTokenProjection,
                  io.kubernetes.client.proto.V1.ServiceAccountTokenProjection.Builder,
                  io.kubernetes.client.proto.V1.ServiceAccountTokenProjectionOrBuilder>(
                  getServiceAccountToken(), getParentForChildren(), isClean());
          serviceAccountToken_ = null;
        }
        return serviceAccountTokenBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VolumeProjection)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VolumeProjection)
    private static final io.kubernetes.client.proto.V1.VolumeProjection DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VolumeProjection();
    }

    public static io.kubernetes.client.proto.V1.VolumeProjection getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VolumeProjection> PARSER =
        new com.google.protobuf.AbstractParser<VolumeProjection>() {
          @java.lang.Override
          public VolumeProjection parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VolumeProjection(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VolumeProjection> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VolumeProjection> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VolumeProjection getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    boolean hasHostPath();
    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath();
    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder();

    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    boolean hasEmptyDir();
    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    io.kubernetes.client.proto.V1.EmptyDirVolumeSource getEmptyDir();
    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder getEmptyDirOrBuilder();

    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    boolean hasGcePersistentDisk();
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk();
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
        getGcePersistentDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    boolean hasAwsElasticBlockStore();
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource getAwsElasticBlockStore();
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
        getAwsElasticBlockStoreOrBuilder();

    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    boolean hasGitRepo();
    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    io.kubernetes.client.proto.V1.GitRepoVolumeSource getGitRepo();
    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder getGitRepoOrBuilder();

    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    boolean hasSecret();
    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    io.kubernetes.client.proto.V1.SecretVolumeSource getSecret();
    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder getSecretOrBuilder();

    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    boolean hasNfs();
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    io.kubernetes.client.proto.V1.NFSVolumeSource getNfs();
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder();

    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    boolean hasIscsi();
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    io.kubernetes.client.proto.V1.ISCSIVolumeSource getIscsi();
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder getIscsiOrBuilder();

    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    boolean hasGlusterfs();
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsVolumeSource getGlusterfs();
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder getGlusterfsOrBuilder();

    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    boolean hasPersistentVolumeClaim();
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource getPersistentVolumeClaim();
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder
        getPersistentVolumeClaimOrBuilder();

    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    boolean hasRbd();
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    io.kubernetes.client.proto.V1.RBDVolumeSource getRbd();
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder getRbdOrBuilder();

    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    boolean hasFlexVolume();
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    io.kubernetes.client.proto.V1.FlexVolumeSource getFlexVolume();
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder getFlexVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    boolean hasCinder();
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    io.kubernetes.client.proto.V1.CinderVolumeSource getCinder();
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder getCinderOrBuilder();

    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    boolean hasCephfs();
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    io.kubernetes.client.proto.V1.CephFSVolumeSource getCephfs();
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder getCephfsOrBuilder();

    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    boolean hasFlocker();
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker();
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder();

    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    boolean hasDownwardAPI();
    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDownwardAPI();
    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder getDownwardAPIOrBuilder();

    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    boolean hasFc();
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    io.kubernetes.client.proto.V1.FCVolumeSource getFc();
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder();

    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    boolean hasAzureFile();
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    io.kubernetes.client.proto.V1.AzureFileVolumeSource getAzureFile();
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder getAzureFileOrBuilder();

    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    boolean hasConfigMap();
    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapVolumeSource getConfigMap();
    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder getConfigMapOrBuilder();

    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    boolean hasVsphereVolume();
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume();
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
        getVsphereVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    boolean hasQuobyte();
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte();
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder();

    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    boolean hasAzureDisk();
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk();
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    boolean hasPhotonPersistentDisk();
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource getPhotonPersistentDisk();
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
        getPhotonPersistentDiskOrBuilder();

    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    boolean hasProjected();
    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    io.kubernetes.client.proto.V1.ProjectedVolumeSource getProjected();
    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder getProjectedOrBuilder();

    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    boolean hasPortworxVolume();
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume();
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder getPortworxVolumeOrBuilder();

    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    boolean hasScaleIO();
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    io.kubernetes.client.proto.V1.ScaleIOVolumeSource getScaleIO();
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder getScaleIOOrBuilder();

    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    boolean hasStorageos();
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    io.kubernetes.client.proto.V1.StorageOSVolumeSource getStorageos();
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder getStorageosOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * Represents the source of a volume to mount.
   * Only one of its members may be specified.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VolumeSource}
   */
  public static final class VolumeSource extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VolumeSource)
      VolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VolumeSource.newBuilder() to construct.
    private VolumeSource(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VolumeSource() {}

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  subBuilder = hostPath_.toBuilder();
                }
                hostPath_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.HostPathVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(hostPath_);
                  hostPath_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000001;
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = emptyDir_.toBuilder();
                }
                emptyDir_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.EmptyDirVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(emptyDir_);
                  emptyDir_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            case 26:
              {
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000004) == 0x00000004)) {
                  subBuilder = gcePersistentDisk_.toBuilder();
                }
                gcePersistentDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(gcePersistentDisk_);
                  gcePersistentDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000004;
                break;
              }
            case 34:
              {
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000008) == 0x00000008)) {
                  subBuilder = awsElasticBlockStore_.toBuilder();
                }
                awsElasticBlockStore_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(awsElasticBlockStore_);
                  awsElasticBlockStore_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000008;
                break;
              }
            case 42:
              {
                io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000010) == 0x00000010)) {
                  subBuilder = gitRepo_.toBuilder();
                }
                gitRepo_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.GitRepoVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(gitRepo_);
                  gitRepo_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000010;
                break;
              }
            case 50:
              {
                io.kubernetes.client.proto.V1.SecretVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000020) == 0x00000020)) {
                  subBuilder = secret_.toBuilder();
                }
                secret_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.SecretVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(secret_);
                  secret_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000020;
                break;
              }
            case 58:
              {
                io.kubernetes.client.proto.V1.NFSVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000040) == 0x00000040)) {
                  subBuilder = nfs_.toBuilder();
                }
                nfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.NFSVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(nfs_);
                  nfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000040;
                break;
              }
            case 66:
              {
                io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000080) == 0x00000080)) {
                  subBuilder = iscsi_.toBuilder();
                }
                iscsi_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ISCSIVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(iscsi_);
                  iscsi_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000080;
                break;
              }
            case 74:
              {
                io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000100) == 0x00000100)) {
                  subBuilder = glusterfs_.toBuilder();
                }
                glusterfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.GlusterfsVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(glusterfs_);
                  glusterfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000100;
                break;
              }
            case 82:
              {
                io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00000200) == 0x00000200)) {
                  subBuilder = persistentVolumeClaim_.toBuilder();
                }
                persistentVolumeClaim_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(persistentVolumeClaim_);
                  persistentVolumeClaim_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000200;
                break;
              }
            case 90:
              {
                io.kubernetes.client.proto.V1.RBDVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000400) == 0x00000400)) {
                  subBuilder = rbd_.toBuilder();
                }
                rbd_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.RBDVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(rbd_);
                  rbd_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000400;
                break;
              }
            case 98:
              {
                io.kubernetes.client.proto.V1.FlexVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00000800) == 0x00000800)) {
                  subBuilder = flexVolume_.toBuilder();
                }
                flexVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FlexVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(flexVolume_);
                  flexVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000800;
                break;
              }
            case 106:
              {
                io.kubernetes.client.proto.V1.CinderVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00001000) == 0x00001000)) {
                  subBuilder = cinder_.toBuilder();
                }
                cinder_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.CinderVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(cinder_);
                  cinder_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00001000;
                break;
              }
            case 114:
              {
                io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00002000) == 0x00002000)) {
                  subBuilder = cephfs_.toBuilder();
                }
                cephfs_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.CephFSVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(cephfs_);
                  cephfs_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00002000;
                break;
              }
            case 122:
              {
                io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00004000) == 0x00004000)) {
                  subBuilder = flocker_.toBuilder();
                }
                flocker_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FlockerVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(flocker_);
                  flocker_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00004000;
                break;
              }
            case 130:
              {
                io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00008000) == 0x00008000)) {
                  subBuilder = downwardAPI_.toBuilder();
                }
                downwardAPI_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(downwardAPI_);
                  downwardAPI_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00008000;
                break;
              }
            case 138:
              {
                io.kubernetes.client.proto.V1.FCVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00010000) == 0x00010000)) {
                  subBuilder = fc_.toBuilder();
                }
                fc_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.FCVolumeSource.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(fc_);
                  fc_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00010000;
                break;
              }
            case 146:
              {
                io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00020000) == 0x00020000)) {
                  subBuilder = azureFile_.toBuilder();
                }
                azureFile_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AzureFileVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(azureFile_);
                  azureFile_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00020000;
                break;
              }
            case 154:
              {
                io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00040000) == 0x00040000)) {
                  subBuilder = configMap_.toBuilder();
                }
                configMap_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ConfigMapVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(configMap_);
                  configMap_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00040000;
                break;
              }
            case 162:
              {
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00080000) == 0x00080000)) {
                  subBuilder = vsphereVolume_.toBuilder();
                }
                vsphereVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(vsphereVolume_);
                  vsphereVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00080000;
                break;
              }
            case 170:
              {
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00100000) == 0x00100000)) {
                  subBuilder = quobyte_.toBuilder();
                }
                quobyte_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.QuobyteVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(quobyte_);
                  quobyte_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00100000;
                break;
              }
            case 178:
              {
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00200000) == 0x00200000)) {
                  subBuilder = azureDisk_.toBuilder();
                }
                azureDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.AzureDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(azureDisk_);
                  azureDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00200000;
                break;
              }
            case 186:
              {
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder subBuilder =
                    null;
                if (((bitField0_ & 0x00400000) == 0x00400000)) {
                  subBuilder = photonPersistentDisk_.toBuilder();
                }
                photonPersistentDisk_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(photonPersistentDisk_);
                  photonPersistentDisk_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00400000;
                break;
              }
            case 194:
              {
                io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x01000000) == 0x01000000)) {
                  subBuilder = portworxVolume_.toBuilder();
                }
                portworxVolume_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PortworxVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(portworxVolume_);
                  portworxVolume_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x01000000;
                break;
              }
            case 202:
              {
                io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x02000000) == 0x02000000)) {
                  subBuilder = scaleIO_.toBuilder();
                }
                scaleIO_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ScaleIOVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(scaleIO_);
                  scaleIO_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x02000000;
                break;
              }
            case 210:
              {
                io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x00800000) == 0x00800000)) {
                  subBuilder = projected_.toBuilder();
                }
                projected_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.ProjectedVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(projected_);
                  projected_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00800000;
                break;
              }
            case 218:
              {
                io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder subBuilder = null;
                if (((bitField0_ & 0x04000000) == 0x04000000)) {
                  subBuilder = storageos_.toBuilder();
                }
                storageos_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.StorageOSVolumeSource.PARSER,
                        extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(storageos_);
                  storageos_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x04000000;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VolumeSource.class,
              io.kubernetes.client.proto.V1.VolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int HOSTPATH_FIELD_NUMBER = 1;
    private io.kubernetes.client.proto.V1.HostPathVolumeSource hostPath_;
    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    public boolean hasHostPath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    public io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath() {
      return hostPath_ == null
          ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
          : hostPath_;
    }
    /**
     *
     *
     * <pre>
     * HostPath represents a pre-existing file or directory on the host
     * machine that is directly exposed to the container. This is generally
     * used for system agents or other privileged things that are allowed
     * to see the host machine. Most containers will NOT need this.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
     * ---
     * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
     * mount host directories as read/write.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
     */
    public io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder() {
      return hostPath_ == null
          ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
          : hostPath_;
    }

    public static final int EMPTYDIR_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.EmptyDirVolumeSource emptyDir_;
    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    public boolean hasEmptyDir() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EmptyDirVolumeSource getEmptyDir() {
      return emptyDir_ == null
          ? io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance()
          : emptyDir_;
    }
    /**
     *
     *
     * <pre>
     * EmptyDir represents a temporary directory that shares a pod's lifetime.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
     */
    public io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder getEmptyDirOrBuilder() {
      return emptyDir_ == null
          ? io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance()
          : emptyDir_;
    }

    public static final int GCEPERSISTENTDISK_FIELD_NUMBER = 3;
    private io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource gcePersistentDisk_;
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    public boolean hasGcePersistentDisk() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk() {
      return gcePersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
          : gcePersistentDisk_;
    }
    /**
     *
     *
     * <pre>
     * GCEPersistentDisk represents a GCE Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
     * </code>
     */
    public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
        getGcePersistentDiskOrBuilder() {
      return gcePersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
          : gcePersistentDisk_;
    }

    public static final int AWSELASTICBLOCKSTORE_FIELD_NUMBER = 4;
    private io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore_;
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    public boolean hasAwsElasticBlockStore() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
        getAwsElasticBlockStore() {
      return awsElasticBlockStore_ == null
          ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
          : awsElasticBlockStore_;
    }
    /**
     *
     *
     * <pre>
     * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
     * </code>
     */
    public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
        getAwsElasticBlockStoreOrBuilder() {
      return awsElasticBlockStore_ == null
          ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
          : awsElasticBlockStore_;
    }

    public static final int GITREPO_FIELD_NUMBER = 5;
    private io.kubernetes.client.proto.V1.GitRepoVolumeSource gitRepo_;
    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    public boolean hasGitRepo() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    public io.kubernetes.client.proto.V1.GitRepoVolumeSource getGitRepo() {
      return gitRepo_ == null
          ? io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance()
          : gitRepo_;
    }
    /**
     *
     *
     * <pre>
     * GitRepo represents a git repository at a particular revision.
     * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
     * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
     * into the Pod's container.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
     */
    public io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder getGitRepoOrBuilder() {
      return gitRepo_ == null
          ? io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance()
          : gitRepo_;
    }

    public static final int SECRET_FIELD_NUMBER = 6;
    private io.kubernetes.client.proto.V1.SecretVolumeSource secret_;
    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    public boolean hasSecret() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    public io.kubernetes.client.proto.V1.SecretVolumeSource getSecret() {
      return secret_ == null
          ? io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance()
          : secret_;
    }
    /**
     *
     *
     * <pre>
     * Secret represents a secret that should populate this volume.
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
     */
    public io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder getSecretOrBuilder() {
      return secret_ == null
          ? io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance()
          : secret_;
    }

    public static final int NFS_FIELD_NUMBER = 7;
    private io.kubernetes.client.proto.V1.NFSVolumeSource nfs_;
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    public boolean hasNfs() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    public io.kubernetes.client.proto.V1.NFSVolumeSource getNfs() {
      return nfs_ == null
          ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
          : nfs_;
    }
    /**
     *
     *
     * <pre>
     * NFS represents an NFS mount on the host that shares a pod's lifetime
     * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
     */
    public io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder() {
      return nfs_ == null
          ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
          : nfs_;
    }

    public static final int ISCSI_FIELD_NUMBER = 8;
    private io.kubernetes.client.proto.V1.ISCSIVolumeSource iscsi_;
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    public boolean hasIscsi() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ISCSIVolumeSource getIscsi() {
      return iscsi_ == null
          ? io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance()
          : iscsi_;
    }
    /**
     *
     *
     * <pre>
     * ISCSI represents an ISCSI Disk resource that is attached to a
     * kubelet's host machine and then exposed to the pod.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
     */
    public io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder getIscsiOrBuilder() {
      return iscsi_ == null
          ? io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance()
          : iscsi_;
    }

    public static final int GLUSTERFS_FIELD_NUMBER = 9;
    private io.kubernetes.client.proto.V1.GlusterfsVolumeSource glusterfs_;
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    public boolean hasGlusterfs() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    public io.kubernetes.client.proto.V1.GlusterfsVolumeSource getGlusterfs() {
      return glusterfs_ == null
          ? io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance()
          : glusterfs_;
    }
    /**
     *
     *
     * <pre>
     * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
     */
    public io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder getGlusterfsOrBuilder() {
      return glusterfs_ == null
          ? io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance()
          : glusterfs_;
    }

    public static final int PERSISTENTVOLUMECLAIM_FIELD_NUMBER = 10;
    private io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource persistentVolumeClaim_;
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    public boolean hasPersistentVolumeClaim() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
        getPersistentVolumeClaim() {
      return persistentVolumeClaim_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance()
          : persistentVolumeClaim_;
    }
    /**
     *
     *
     * <pre>
     * PersistentVolumeClaimVolumeSource represents a reference to a
     * PersistentVolumeClaim in the same namespace.
     * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
     * +optional
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder
        getPersistentVolumeClaimOrBuilder() {
      return persistentVolumeClaim_ == null
          ? io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance()
          : persistentVolumeClaim_;
    }

    public static final int RBD_FIELD_NUMBER = 11;
    private io.kubernetes.client.proto.V1.RBDVolumeSource rbd_;
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    public boolean hasRbd() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    public io.kubernetes.client.proto.V1.RBDVolumeSource getRbd() {
      return rbd_ == null
          ? io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance()
          : rbd_;
    }
    /**
     *
     *
     * <pre>
     * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
     * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
     */
    public io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder getRbdOrBuilder() {
      return rbd_ == null
          ? io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance()
          : rbd_;
    }

    public static final int FLEXVOLUME_FIELD_NUMBER = 12;
    private io.kubernetes.client.proto.V1.FlexVolumeSource flexVolume_;
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    public boolean hasFlexVolume() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    public io.kubernetes.client.proto.V1.FlexVolumeSource getFlexVolume() {
      return flexVolume_ == null
          ? io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance()
          : flexVolume_;
    }
    /**
     *
     *
     * <pre>
     * FlexVolume represents a generic volume resource that is
     * provisioned/attached using an exec based plugin.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
     */
    public io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder getFlexVolumeOrBuilder() {
      return flexVolume_ == null
          ? io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance()
          : flexVolume_;
    }

    public static final int CINDER_FIELD_NUMBER = 13;
    private io.kubernetes.client.proto.V1.CinderVolumeSource cinder_;
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    public boolean hasCinder() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    public io.kubernetes.client.proto.V1.CinderVolumeSource getCinder() {
      return cinder_ == null
          ? io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance()
          : cinder_;
    }
    /**
     *
     *
     * <pre>
     * Cinder represents a cinder volume attached and mounted on kubelets host machine
     * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
     */
    public io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder getCinderOrBuilder() {
      return cinder_ == null
          ? io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance()
          : cinder_;
    }

    public static final int CEPHFS_FIELD_NUMBER = 14;
    private io.kubernetes.client.proto.V1.CephFSVolumeSource cephfs_;
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    public boolean hasCephfs() {
      return ((bitField0_ & 0x00002000) == 0x00002000);
    }
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    public io.kubernetes.client.proto.V1.CephFSVolumeSource getCephfs() {
      return cephfs_ == null
          ? io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance()
          : cephfs_;
    }
    /**
     *
     *
     * <pre>
     * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
     */
    public io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder getCephfsOrBuilder() {
      return cephfs_ == null
          ? io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance()
          : cephfs_;
    }

    public static final int FLOCKER_FIELD_NUMBER = 15;
    private io.kubernetes.client.proto.V1.FlockerVolumeSource flocker_;
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    public boolean hasFlocker() {
      return ((bitField0_ & 0x00004000) == 0x00004000);
    }
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    public io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker() {
      return flocker_ == null
          ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
          : flocker_;
    }
    /**
     *
     *
     * <pre>
     * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
     */
    public io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder() {
      return flocker_ == null
          ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
          : flocker_;
    }

    public static final int DOWNWARDAPI_FIELD_NUMBER = 16;
    private io.kubernetes.client.proto.V1.DownwardAPIVolumeSource downwardAPI_;
    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    public boolean hasDownwardAPI() {
      return ((bitField0_ & 0x00008000) == 0x00008000);
    }
    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDownwardAPI() {
      return downwardAPI_ == null
          ? io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance()
          : downwardAPI_;
    }
    /**
     *
     *
     * <pre>
     * DownwardAPI represents downward API about the pod that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
     */
    public io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder
        getDownwardAPIOrBuilder() {
      return downwardAPI_ == null
          ? io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance()
          : downwardAPI_;
    }

    public static final int FC_FIELD_NUMBER = 17;
    private io.kubernetes.client.proto.V1.FCVolumeSource fc_;
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    public boolean hasFc() {
      return ((bitField0_ & 0x00010000) == 0x00010000);
    }
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    public io.kubernetes.client.proto.V1.FCVolumeSource getFc() {
      return fc_ == null ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance() : fc_;
    }
    /**
     *
     *
     * <pre>
     * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
     */
    public io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder() {
      return fc_ == null ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance() : fc_;
    }

    public static final int AZUREFILE_FIELD_NUMBER = 18;
    private io.kubernetes.client.proto.V1.AzureFileVolumeSource azureFile_;
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    public boolean hasAzureFile() {
      return ((bitField0_ & 0x00020000) == 0x00020000);
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    public io.kubernetes.client.proto.V1.AzureFileVolumeSource getAzureFile() {
      return azureFile_ == null
          ? io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance()
          : azureFile_;
    }
    /**
     *
     *
     * <pre>
     * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
     */
    public io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder getAzureFileOrBuilder() {
      return azureFile_ == null
          ? io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance()
          : azureFile_;
    }

    public static final int CONFIGMAP_FIELD_NUMBER = 19;
    private io.kubernetes.client.proto.V1.ConfigMapVolumeSource configMap_;
    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    public boolean hasConfigMap() {
      return ((bitField0_ & 0x00040000) == 0x00040000);
    }
    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapVolumeSource getConfigMap() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance()
          : configMap_;
    }
    /**
     *
     *
     * <pre>
     * ConfigMap represents a configMap that should populate this volume
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
     */
    public io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder getConfigMapOrBuilder() {
      return configMap_ == null
          ? io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance()
          : configMap_;
    }

    public static final int VSPHEREVOLUME_FIELD_NUMBER = 20;
    private io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource vsphereVolume_;
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    public boolean hasVsphereVolume() {
      return ((bitField0_ & 0x00080000) == 0x00080000);
    }
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume() {
      return vsphereVolume_ == null
          ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
          : vsphereVolume_;
    }
    /**
     *
     *
     * <pre>
     * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
     * </code>
     */
    public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
        getVsphereVolumeOrBuilder() {
      return vsphereVolume_ == null
          ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
          : vsphereVolume_;
    }

    public static final int QUOBYTE_FIELD_NUMBER = 21;
    private io.kubernetes.client.proto.V1.QuobyteVolumeSource quobyte_;
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    public boolean hasQuobyte() {
      return ((bitField0_ & 0x00100000) == 0x00100000);
    }
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    public io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte() {
      return quobyte_ == null
          ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
          : quobyte_;
    }
    /**
     *
     *
     * <pre>
     * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
     */
    public io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder() {
      return quobyte_ == null
          ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
          : quobyte_;
    }

    public static final int AZUREDISK_FIELD_NUMBER = 22;
    private io.kubernetes.client.proto.V1.AzureDiskVolumeSource azureDisk_;
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    public boolean hasAzureDisk() {
      return ((bitField0_ & 0x00200000) == 0x00200000);
    }
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk() {
      return azureDisk_ == null
          ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
          : azureDisk_;
    }
    /**
     *
     *
     * <pre>
     * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
     */
    public io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder() {
      return azureDisk_ == null
          ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
          : azureDisk_;
    }

    public static final int PHOTONPERSISTENTDISK_FIELD_NUMBER = 23;
    private io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource photonPersistentDisk_;
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    public boolean hasPhotonPersistentDisk() {
      return ((bitField0_ & 0x00400000) == 0x00400000);
    }
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
        getPhotonPersistentDisk() {
      return photonPersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
          : photonPersistentDisk_;
    }
    /**
     *
     *
     * <pre>
     * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
     * </pre>
     *
     * <code>
     * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
     * </code>
     */
    public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
        getPhotonPersistentDiskOrBuilder() {
      return photonPersistentDisk_ == null
          ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
          : photonPersistentDisk_;
    }

    public static final int PROJECTED_FIELD_NUMBER = 26;
    private io.kubernetes.client.proto.V1.ProjectedVolumeSource projected_;
    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    public boolean hasProjected() {
      return ((bitField0_ & 0x00800000) == 0x00800000);
    }
    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    public io.kubernetes.client.proto.V1.ProjectedVolumeSource getProjected() {
      return projected_ == null
          ? io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance()
          : projected_;
    }
    /**
     *
     *
     * <pre>
     * Items for all in one resources secrets, configmaps, and downward API
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
     */
    public io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder getProjectedOrBuilder() {
      return projected_ == null
          ? io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance()
          : projected_;
    }

    public static final int PORTWORXVOLUME_FIELD_NUMBER = 24;
    private io.kubernetes.client.proto.V1.PortworxVolumeSource portworxVolume_;
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    public boolean hasPortworxVolume() {
      return ((bitField0_ & 0x01000000) == 0x01000000);
    }
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    public io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume() {
      return portworxVolume_ == null
          ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
          : portworxVolume_;
    }
    /**
     *
     *
     * <pre>
     * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
     */
    public io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder
        getPortworxVolumeOrBuilder() {
      return portworxVolume_ == null
          ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
          : portworxVolume_;
    }

    public static final int SCALEIO_FIELD_NUMBER = 25;
    private io.kubernetes.client.proto.V1.ScaleIOVolumeSource scaleIO_;
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    public boolean hasScaleIO() {
      return ((bitField0_ & 0x02000000) == 0x02000000);
    }
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    public io.kubernetes.client.proto.V1.ScaleIOVolumeSource getScaleIO() {
      return scaleIO_ == null
          ? io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance()
          : scaleIO_;
    }
    /**
     *
     *
     * <pre>
     * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
     */
    public io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder getScaleIOOrBuilder() {
      return scaleIO_ == null
          ? io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance()
          : scaleIO_;
    }

    public static final int STORAGEOS_FIELD_NUMBER = 27;
    private io.kubernetes.client.proto.V1.StorageOSVolumeSource storageos_;
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    public boolean hasStorageos() {
      return ((bitField0_ & 0x04000000) == 0x04000000);
    }
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    public io.kubernetes.client.proto.V1.StorageOSVolumeSource getStorageos() {
      return storageos_ == null
          ? io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance()
          : storageos_;
    }
    /**
     *
     *
     * <pre>
     * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
     * +optional
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
     */
    public io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder getStorageosOrBuilder() {
      return storageos_ == null
          ? io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance()
          : storageos_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, getHostPath());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getEmptyDir());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(3, getGcePersistentDisk());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, getAwsElasticBlockStore());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeMessage(5, getGitRepo());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeMessage(6, getSecret());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeMessage(7, getNfs());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeMessage(8, getIscsi());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeMessage(9, getGlusterfs());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeMessage(10, getPersistentVolumeClaim());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeMessage(11, getRbd());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeMessage(12, getFlexVolume());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeMessage(13, getCinder());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        output.writeMessage(14, getCephfs());
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        output.writeMessage(15, getFlocker());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        output.writeMessage(16, getDownwardAPI());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        output.writeMessage(17, getFc());
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        output.writeMessage(18, getAzureFile());
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        output.writeMessage(19, getConfigMap());
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        output.writeMessage(20, getVsphereVolume());
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        output.writeMessage(21, getQuobyte());
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        output.writeMessage(22, getAzureDisk());
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        output.writeMessage(23, getPhotonPersistentDisk());
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        output.writeMessage(24, getPortworxVolume());
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        output.writeMessage(25, getScaleIO());
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        output.writeMessage(26, getProjected());
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        output.writeMessage(27, getStorageos());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(1, getHostPath());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getEmptyDir());
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(3, getGcePersistentDisk());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(4, getAwsElasticBlockStore());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, getGitRepo());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, getSecret());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getNfs());
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getIscsi());
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(9, getGlusterfs());
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(
                10, getPersistentVolumeClaim());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(11, getRbd());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(12, getFlexVolume());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(13, getCinder());
      }
      if (((bitField0_ & 0x00002000) == 0x00002000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(14, getCephfs());
      }
      if (((bitField0_ & 0x00004000) == 0x00004000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(15, getFlocker());
      }
      if (((bitField0_ & 0x00008000) == 0x00008000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(16, getDownwardAPI());
      }
      if (((bitField0_ & 0x00010000) == 0x00010000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(17, getFc());
      }
      if (((bitField0_ & 0x00020000) == 0x00020000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(18, getAzureFile());
      }
      if (((bitField0_ & 0x00040000) == 0x00040000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(19, getConfigMap());
      }
      if (((bitField0_ & 0x00080000) == 0x00080000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(20, getVsphereVolume());
      }
      if (((bitField0_ & 0x00100000) == 0x00100000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(21, getQuobyte());
      }
      if (((bitField0_ & 0x00200000) == 0x00200000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(22, getAzureDisk());
      }
      if (((bitField0_ & 0x00400000) == 0x00400000)) {
        size +=
            com.google.protobuf.CodedOutputStream.computeMessageSize(23, getPhotonPersistentDisk());
      }
      if (((bitField0_ & 0x01000000) == 0x01000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(24, getPortworxVolume());
      }
      if (((bitField0_ & 0x02000000) == 0x02000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(25, getScaleIO());
      }
      if (((bitField0_ & 0x00800000) == 0x00800000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(26, getProjected());
      }
      if (((bitField0_ & 0x04000000) == 0x04000000)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(27, getStorageos());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VolumeSource other =
          (io.kubernetes.client.proto.V1.VolumeSource) obj;

      boolean result = true;
      result = result && (hasHostPath() == other.hasHostPath());
      if (hasHostPath()) {
        result = result && getHostPath().equals(other.getHostPath());
      }
      result = result && (hasEmptyDir() == other.hasEmptyDir());
      if (hasEmptyDir()) {
        result = result && getEmptyDir().equals(other.getEmptyDir());
      }
      result = result && (hasGcePersistentDisk() == other.hasGcePersistentDisk());
      if (hasGcePersistentDisk()) {
        result = result && getGcePersistentDisk().equals(other.getGcePersistentDisk());
      }
      result = result && (hasAwsElasticBlockStore() == other.hasAwsElasticBlockStore());
      if (hasAwsElasticBlockStore()) {
        result = result && getAwsElasticBlockStore().equals(other.getAwsElasticBlockStore());
      }
      result = result && (hasGitRepo() == other.hasGitRepo());
      if (hasGitRepo()) {
        result = result && getGitRepo().equals(other.getGitRepo());
      }
      result = result && (hasSecret() == other.hasSecret());
      if (hasSecret()) {
        result = result && getSecret().equals(other.getSecret());
      }
      result = result && (hasNfs() == other.hasNfs());
      if (hasNfs()) {
        result = result && getNfs().equals(other.getNfs());
      }
      result = result && (hasIscsi() == other.hasIscsi());
      if (hasIscsi()) {
        result = result && getIscsi().equals(other.getIscsi());
      }
      result = result && (hasGlusterfs() == other.hasGlusterfs());
      if (hasGlusterfs()) {
        result = result && getGlusterfs().equals(other.getGlusterfs());
      }
      result = result && (hasPersistentVolumeClaim() == other.hasPersistentVolumeClaim());
      if (hasPersistentVolumeClaim()) {
        result = result && getPersistentVolumeClaim().equals(other.getPersistentVolumeClaim());
      }
      result = result && (hasRbd() == other.hasRbd());
      if (hasRbd()) {
        result = result && getRbd().equals(other.getRbd());
      }
      result = result && (hasFlexVolume() == other.hasFlexVolume());
      if (hasFlexVolume()) {
        result = result && getFlexVolume().equals(other.getFlexVolume());
      }
      result = result && (hasCinder() == other.hasCinder());
      if (hasCinder()) {
        result = result && getCinder().equals(other.getCinder());
      }
      result = result && (hasCephfs() == other.hasCephfs());
      if (hasCephfs()) {
        result = result && getCephfs().equals(other.getCephfs());
      }
      result = result && (hasFlocker() == other.hasFlocker());
      if (hasFlocker()) {
        result = result && getFlocker().equals(other.getFlocker());
      }
      result = result && (hasDownwardAPI() == other.hasDownwardAPI());
      if (hasDownwardAPI()) {
        result = result && getDownwardAPI().equals(other.getDownwardAPI());
      }
      result = result && (hasFc() == other.hasFc());
      if (hasFc()) {
        result = result && getFc().equals(other.getFc());
      }
      result = result && (hasAzureFile() == other.hasAzureFile());
      if (hasAzureFile()) {
        result = result && getAzureFile().equals(other.getAzureFile());
      }
      result = result && (hasConfigMap() == other.hasConfigMap());
      if (hasConfigMap()) {
        result = result && getConfigMap().equals(other.getConfigMap());
      }
      result = result && (hasVsphereVolume() == other.hasVsphereVolume());
      if (hasVsphereVolume()) {
        result = result && getVsphereVolume().equals(other.getVsphereVolume());
      }
      result = result && (hasQuobyte() == other.hasQuobyte());
      if (hasQuobyte()) {
        result = result && getQuobyte().equals(other.getQuobyte());
      }
      result = result && (hasAzureDisk() == other.hasAzureDisk());
      if (hasAzureDisk()) {
        result = result && getAzureDisk().equals(other.getAzureDisk());
      }
      result = result && (hasPhotonPersistentDisk() == other.hasPhotonPersistentDisk());
      if (hasPhotonPersistentDisk()) {
        result = result && getPhotonPersistentDisk().equals(other.getPhotonPersistentDisk());
      }
      result = result && (hasProjected() == other.hasProjected());
      if (hasProjected()) {
        result = result && getProjected().equals(other.getProjected());
      }
      result = result && (hasPortworxVolume() == other.hasPortworxVolume());
      if (hasPortworxVolume()) {
        result = result && getPortworxVolume().equals(other.getPortworxVolume());
      }
      result = result && (hasScaleIO() == other.hasScaleIO());
      if (hasScaleIO()) {
        result = result && getScaleIO().equals(other.getScaleIO());
      }
      result = result && (hasStorageos() == other.hasStorageos());
      if (hasStorageos()) {
        result = result && getStorageos().equals(other.getStorageos());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasHostPath()) {
        hash = (37 * hash) + HOSTPATH_FIELD_NUMBER;
        hash = (53 * hash) + getHostPath().hashCode();
      }
      if (hasEmptyDir()) {
        hash = (37 * hash) + EMPTYDIR_FIELD_NUMBER;
        hash = (53 * hash) + getEmptyDir().hashCode();
      }
      if (hasGcePersistentDisk()) {
        hash = (37 * hash) + GCEPERSISTENTDISK_FIELD_NUMBER;
        hash = (53 * hash) + getGcePersistentDisk().hashCode();
      }
      if (hasAwsElasticBlockStore()) {
        hash = (37 * hash) + AWSELASTICBLOCKSTORE_FIELD_NUMBER;
        hash = (53 * hash) + getAwsElasticBlockStore().hashCode();
      }
      if (hasGitRepo()) {
        hash = (37 * hash) + GITREPO_FIELD_NUMBER;
        hash = (53 * hash) + getGitRepo().hashCode();
      }
      if (hasSecret()) {
        hash = (37 * hash) + SECRET_FIELD_NUMBER;
        hash = (53 * hash) + getSecret().hashCode();
      }
      if (hasNfs()) {
        hash = (37 * hash) + NFS_FIELD_NUMBER;
        hash = (53 * hash) + getNfs().hashCode();
      }
      if (hasIscsi()) {
        hash = (37 * hash) + ISCSI_FIELD_NUMBER;
        hash = (53 * hash) + getIscsi().hashCode();
      }
      if (hasGlusterfs()) {
        hash = (37 * hash) + GLUSTERFS_FIELD_NUMBER;
        hash = (53 * hash) + getGlusterfs().hashCode();
      }
      if (hasPersistentVolumeClaim()) {
        hash = (37 * hash) + PERSISTENTVOLUMECLAIM_FIELD_NUMBER;
        hash = (53 * hash) + getPersistentVolumeClaim().hashCode();
      }
      if (hasRbd()) {
        hash = (37 * hash) + RBD_FIELD_NUMBER;
        hash = (53 * hash) + getRbd().hashCode();
      }
      if (hasFlexVolume()) {
        hash = (37 * hash) + FLEXVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getFlexVolume().hashCode();
      }
      if (hasCinder()) {
        hash = (37 * hash) + CINDER_FIELD_NUMBER;
        hash = (53 * hash) + getCinder().hashCode();
      }
      if (hasCephfs()) {
        hash = (37 * hash) + CEPHFS_FIELD_NUMBER;
        hash = (53 * hash) + getCephfs().hashCode();
      }
      if (hasFlocker()) {
        hash = (37 * hash) + FLOCKER_FIELD_NUMBER;
        hash = (53 * hash) + getFlocker().hashCode();
      }
      if (hasDownwardAPI()) {
        hash = (37 * hash) + DOWNWARDAPI_FIELD_NUMBER;
        hash = (53 * hash) + getDownwardAPI().hashCode();
      }
      if (hasFc()) {
        hash = (37 * hash) + FC_FIELD_NUMBER;
        hash = (53 * hash) + getFc().hashCode();
      }
      if (hasAzureFile()) {
        hash = (37 * hash) + AZUREFILE_FIELD_NUMBER;
        hash = (53 * hash) + getAzureFile().hashCode();
      }
      if (hasConfigMap()) {
        hash = (37 * hash) + CONFIGMAP_FIELD_NUMBER;
        hash = (53 * hash) + getConfigMap().hashCode();
      }
      if (hasVsphereVolume()) {
        hash = (37 * hash) + VSPHEREVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getVsphereVolume().hashCode();
      }
      if (hasQuobyte()) {
        hash = (37 * hash) + QUOBYTE_FIELD_NUMBER;
        hash = (53 * hash) + getQuobyte().hashCode();
      }
      if (hasAzureDisk()) {
        hash = (37 * hash) + AZUREDISK_FIELD_NUMBER;
        hash = (53 * hash) + getAzureDisk().hashCode();
      }
      if (hasPhotonPersistentDisk()) {
        hash = (37 * hash) + PHOTONPERSISTENTDISK_FIELD_NUMBER;
        hash = (53 * hash) + getPhotonPersistentDisk().hashCode();
      }
      if (hasProjected()) {
        hash = (37 * hash) + PROJECTED_FIELD_NUMBER;
        hash = (53 * hash) + getProjected().hashCode();
      }
      if (hasPortworxVolume()) {
        hash = (37 * hash) + PORTWORXVOLUME_FIELD_NUMBER;
        hash = (53 * hash) + getPortworxVolume().hashCode();
      }
      if (hasScaleIO()) {
        hash = (37 * hash) + SCALEIO_FIELD_NUMBER;
        hash = (53 * hash) + getScaleIO().hashCode();
      }
      if (hasStorageos()) {
        hash = (37 * hash) + STORAGEOS_FIELD_NUMBER;
        hash = (53 * hash) + getStorageos().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(io.kubernetes.client.proto.V1.VolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents the source of a volume to mount.
     * Only one of its members may be specified.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VolumeSource)
        io.kubernetes.client.proto.V1.VolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VolumeSource.class,
                io.kubernetes.client.proto.V1.VolumeSource.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.VolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getHostPathFieldBuilder();
          getEmptyDirFieldBuilder();
          getGcePersistentDiskFieldBuilder();
          getAwsElasticBlockStoreFieldBuilder();
          getGitRepoFieldBuilder();
          getSecretFieldBuilder();
          getNfsFieldBuilder();
          getIscsiFieldBuilder();
          getGlusterfsFieldBuilder();
          getPersistentVolumeClaimFieldBuilder();
          getRbdFieldBuilder();
          getFlexVolumeFieldBuilder();
          getCinderFieldBuilder();
          getCephfsFieldBuilder();
          getFlockerFieldBuilder();
          getDownwardAPIFieldBuilder();
          getFcFieldBuilder();
          getAzureFileFieldBuilder();
          getConfigMapFieldBuilder();
          getVsphereVolumeFieldBuilder();
          getQuobyteFieldBuilder();
          getAzureDiskFieldBuilder();
          getPhotonPersistentDiskFieldBuilder();
          getProjectedFieldBuilder();
          getPortworxVolumeFieldBuilder();
          getScaleIOFieldBuilder();
          getStorageosFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        if (hostPathBuilder_ == null) {
          hostPath_ = null;
        } else {
          hostPathBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (emptyDirBuilder_ == null) {
          emptyDir_ = null;
        } else {
          emptyDirBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = null;
        } else {
          gcePersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = null;
        } else {
          awsElasticBlockStoreBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        if (gitRepoBuilder_ == null) {
          gitRepo_ = null;
        } else {
          gitRepoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        if (secretBuilder_ == null) {
          secret_ = null;
        } else {
          secretBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        if (nfsBuilder_ == null) {
          nfs_ = null;
        } else {
          nfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        if (iscsiBuilder_ == null) {
          iscsi_ = null;
        } else {
          iscsiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        if (glusterfsBuilder_ == null) {
          glusterfs_ = null;
        } else {
          glusterfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        if (persistentVolumeClaimBuilder_ == null) {
          persistentVolumeClaim_ = null;
        } else {
          persistentVolumeClaimBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        if (rbdBuilder_ == null) {
          rbd_ = null;
        } else {
          rbdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = null;
        } else {
          flexVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        if (cinderBuilder_ == null) {
          cinder_ = null;
        } else {
          cinderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        if (cephfsBuilder_ == null) {
          cephfs_ = null;
        } else {
          cephfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        if (flockerBuilder_ == null) {
          flocker_ = null;
        } else {
          flockerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = null;
        } else {
          downwardAPIBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        if (fcBuilder_ == null) {
          fc_ = null;
        } else {
          fcBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        if (azureFileBuilder_ == null) {
          azureFile_ = null;
        } else {
          azureFileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        if (configMapBuilder_ == null) {
          configMap_ = null;
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = null;
        } else {
          vsphereVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        if (quobyteBuilder_ == null) {
          quobyte_ = null;
        } else {
          quobyteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        if (azureDiskBuilder_ == null) {
          azureDisk_ = null;
        } else {
          azureDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = null;
        } else {
          photonPersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00400000);
        if (projectedBuilder_ == null) {
          projected_ = null;
        } else {
          projectedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = null;
        } else {
          portworxVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x01000000);
        if (scaleIOBuilder_ == null) {
          scaleIO_ = null;
        } else {
          scaleIOBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x02000000);
        if (storageosBuilder_ == null) {
          storageos_ = null;
        } else {
          storageosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeSource getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeSource build() {
        io.kubernetes.client.proto.V1.VolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.VolumeSource result =
            new io.kubernetes.client.proto.V1.VolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (hostPathBuilder_ == null) {
          result.hostPath_ = hostPath_;
        } else {
          result.hostPath_ = hostPathBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (emptyDirBuilder_ == null) {
          result.emptyDir_ = emptyDir_;
        } else {
          result.emptyDir_ = emptyDirBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (gcePersistentDiskBuilder_ == null) {
          result.gcePersistentDisk_ = gcePersistentDisk_;
        } else {
          result.gcePersistentDisk_ = gcePersistentDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (awsElasticBlockStoreBuilder_ == null) {
          result.awsElasticBlockStore_ = awsElasticBlockStore_;
        } else {
          result.awsElasticBlockStore_ = awsElasticBlockStoreBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        if (gitRepoBuilder_ == null) {
          result.gitRepo_ = gitRepo_;
        } else {
          result.gitRepo_ = gitRepoBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        if (secretBuilder_ == null) {
          result.secret_ = secret_;
        } else {
          result.secret_ = secretBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        if (nfsBuilder_ == null) {
          result.nfs_ = nfs_;
        } else {
          result.nfs_ = nfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        if (iscsiBuilder_ == null) {
          result.iscsi_ = iscsi_;
        } else {
          result.iscsi_ = iscsiBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        if (glusterfsBuilder_ == null) {
          result.glusterfs_ = glusterfs_;
        } else {
          result.glusterfs_ = glusterfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        if (persistentVolumeClaimBuilder_ == null) {
          result.persistentVolumeClaim_ = persistentVolumeClaim_;
        } else {
          result.persistentVolumeClaim_ = persistentVolumeClaimBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        if (rbdBuilder_ == null) {
          result.rbd_ = rbd_;
        } else {
          result.rbd_ = rbdBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        if (flexVolumeBuilder_ == null) {
          result.flexVolume_ = flexVolume_;
        } else {
          result.flexVolume_ = flexVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        if (cinderBuilder_ == null) {
          result.cinder_ = cinder_;
        } else {
          result.cinder_ = cinderBuilder_.build();
        }
        if (((from_bitField0_ & 0x00002000) == 0x00002000)) {
          to_bitField0_ |= 0x00002000;
        }
        if (cephfsBuilder_ == null) {
          result.cephfs_ = cephfs_;
        } else {
          result.cephfs_ = cephfsBuilder_.build();
        }
        if (((from_bitField0_ & 0x00004000) == 0x00004000)) {
          to_bitField0_ |= 0x00004000;
        }
        if (flockerBuilder_ == null) {
          result.flocker_ = flocker_;
        } else {
          result.flocker_ = flockerBuilder_.build();
        }
        if (((from_bitField0_ & 0x00008000) == 0x00008000)) {
          to_bitField0_ |= 0x00008000;
        }
        if (downwardAPIBuilder_ == null) {
          result.downwardAPI_ = downwardAPI_;
        } else {
          result.downwardAPI_ = downwardAPIBuilder_.build();
        }
        if (((from_bitField0_ & 0x00010000) == 0x00010000)) {
          to_bitField0_ |= 0x00010000;
        }
        if (fcBuilder_ == null) {
          result.fc_ = fc_;
        } else {
          result.fc_ = fcBuilder_.build();
        }
        if (((from_bitField0_ & 0x00020000) == 0x00020000)) {
          to_bitField0_ |= 0x00020000;
        }
        if (azureFileBuilder_ == null) {
          result.azureFile_ = azureFile_;
        } else {
          result.azureFile_ = azureFileBuilder_.build();
        }
        if (((from_bitField0_ & 0x00040000) == 0x00040000)) {
          to_bitField0_ |= 0x00040000;
        }
        if (configMapBuilder_ == null) {
          result.configMap_ = configMap_;
        } else {
          result.configMap_ = configMapBuilder_.build();
        }
        if (((from_bitField0_ & 0x00080000) == 0x00080000)) {
          to_bitField0_ |= 0x00080000;
        }
        if (vsphereVolumeBuilder_ == null) {
          result.vsphereVolume_ = vsphereVolume_;
        } else {
          result.vsphereVolume_ = vsphereVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x00100000) == 0x00100000)) {
          to_bitField0_ |= 0x00100000;
        }
        if (quobyteBuilder_ == null) {
          result.quobyte_ = quobyte_;
        } else {
          result.quobyte_ = quobyteBuilder_.build();
        }
        if (((from_bitField0_ & 0x00200000) == 0x00200000)) {
          to_bitField0_ |= 0x00200000;
        }
        if (azureDiskBuilder_ == null) {
          result.azureDisk_ = azureDisk_;
        } else {
          result.azureDisk_ = azureDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00400000) == 0x00400000)) {
          to_bitField0_ |= 0x00400000;
        }
        if (photonPersistentDiskBuilder_ == null) {
          result.photonPersistentDisk_ = photonPersistentDisk_;
        } else {
          result.photonPersistentDisk_ = photonPersistentDiskBuilder_.build();
        }
        if (((from_bitField0_ & 0x00800000) == 0x00800000)) {
          to_bitField0_ |= 0x00800000;
        }
        if (projectedBuilder_ == null) {
          result.projected_ = projected_;
        } else {
          result.projected_ = projectedBuilder_.build();
        }
        if (((from_bitField0_ & 0x01000000) == 0x01000000)) {
          to_bitField0_ |= 0x01000000;
        }
        if (portworxVolumeBuilder_ == null) {
          result.portworxVolume_ = portworxVolume_;
        } else {
          result.portworxVolume_ = portworxVolumeBuilder_.build();
        }
        if (((from_bitField0_ & 0x02000000) == 0x02000000)) {
          to_bitField0_ |= 0x02000000;
        }
        if (scaleIOBuilder_ == null) {
          result.scaleIO_ = scaleIO_;
        } else {
          result.scaleIO_ = scaleIOBuilder_.build();
        }
        if (((from_bitField0_ & 0x04000000) == 0x04000000)) {
          to_bitField0_ |= 0x04000000;
        }
        if (storageosBuilder_ == null) {
          result.storageos_ = storageos_;
        } else {
          result.storageos_ = storageosBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.VolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VolumeSource other) {
        if (other == io.kubernetes.client.proto.V1.VolumeSource.getDefaultInstance()) return this;
        if (other.hasHostPath()) {
          mergeHostPath(other.getHostPath());
        }
        if (other.hasEmptyDir()) {
          mergeEmptyDir(other.getEmptyDir());
        }
        if (other.hasGcePersistentDisk()) {
          mergeGcePersistentDisk(other.getGcePersistentDisk());
        }
        if (other.hasAwsElasticBlockStore()) {
          mergeAwsElasticBlockStore(other.getAwsElasticBlockStore());
        }
        if (other.hasGitRepo()) {
          mergeGitRepo(other.getGitRepo());
        }
        if (other.hasSecret()) {
          mergeSecret(other.getSecret());
        }
        if (other.hasNfs()) {
          mergeNfs(other.getNfs());
        }
        if (other.hasIscsi()) {
          mergeIscsi(other.getIscsi());
        }
        if (other.hasGlusterfs()) {
          mergeGlusterfs(other.getGlusterfs());
        }
        if (other.hasPersistentVolumeClaim()) {
          mergePersistentVolumeClaim(other.getPersistentVolumeClaim());
        }
        if (other.hasRbd()) {
          mergeRbd(other.getRbd());
        }
        if (other.hasFlexVolume()) {
          mergeFlexVolume(other.getFlexVolume());
        }
        if (other.hasCinder()) {
          mergeCinder(other.getCinder());
        }
        if (other.hasCephfs()) {
          mergeCephfs(other.getCephfs());
        }
        if (other.hasFlocker()) {
          mergeFlocker(other.getFlocker());
        }
        if (other.hasDownwardAPI()) {
          mergeDownwardAPI(other.getDownwardAPI());
        }
        if (other.hasFc()) {
          mergeFc(other.getFc());
        }
        if (other.hasAzureFile()) {
          mergeAzureFile(other.getAzureFile());
        }
        if (other.hasConfigMap()) {
          mergeConfigMap(other.getConfigMap());
        }
        if (other.hasVsphereVolume()) {
          mergeVsphereVolume(other.getVsphereVolume());
        }
        if (other.hasQuobyte()) {
          mergeQuobyte(other.getQuobyte());
        }
        if (other.hasAzureDisk()) {
          mergeAzureDisk(other.getAzureDisk());
        }
        if (other.hasPhotonPersistentDisk()) {
          mergePhotonPersistentDisk(other.getPhotonPersistentDisk());
        }
        if (other.hasProjected()) {
          mergeProjected(other.getProjected());
        }
        if (other.hasPortworxVolume()) {
          mergePortworxVolume(other.getPortworxVolume());
        }
        if (other.hasScaleIO()) {
          mergeScaleIO(other.getScaleIO());
        }
        if (other.hasStorageos()) {
          mergeStorageos(other.getStorageos());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (io.kubernetes.client.proto.V1.VolumeSource) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private io.kubernetes.client.proto.V1.HostPathVolumeSource hostPath_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostPathVolumeSource,
              io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
              io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>
          hostPathBuilder_;
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public boolean hasHostPath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSource getHostPath() {
        if (hostPathBuilder_ == null) {
          return hostPath_ == null
              ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
              : hostPath_;
        } else {
          return hostPathBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public Builder setHostPath(io.kubernetes.client.proto.V1.HostPathVolumeSource value) {
        if (hostPathBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          hostPath_ = value;
          onChanged();
        } else {
          hostPathBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public Builder setHostPath(
          io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder builderForValue) {
        if (hostPathBuilder_ == null) {
          hostPath_ = builderForValue.build();
          onChanged();
        } else {
          hostPathBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public Builder mergeHostPath(io.kubernetes.client.proto.V1.HostPathVolumeSource value) {
        if (hostPathBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)
              && hostPath_ != null
              && hostPath_
                  != io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()) {
            hostPath_ =
                io.kubernetes.client.proto.V1.HostPathVolumeSource.newBuilder(hostPath_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            hostPath_ = value;
          }
          onChanged();
        } else {
          hostPathBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public Builder clearHostPath() {
        if (hostPathBuilder_ == null) {
          hostPath_ = null;
          onChanged();
        } else {
          hostPathBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder getHostPathBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getHostPathFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      public io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder getHostPathOrBuilder() {
        if (hostPathBuilder_ != null) {
          return hostPathBuilder_.getMessageOrBuilder();
        } else {
          return hostPath_ == null
              ? io.kubernetes.client.proto.V1.HostPathVolumeSource.getDefaultInstance()
              : hostPath_;
        }
      }
      /**
       *
       *
       * <pre>
       * HostPath represents a pre-existing file or directory on the host
       * machine that is directly exposed to the container. This is generally
       * used for system agents or other privileged things that are allowed
       * to see the host machine. Most containers will NOT need this.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath
       * ---
       * TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not
       * mount host directories as read/write.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.HostPathVolumeSource hostPath = 1;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.HostPathVolumeSource,
              io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
              io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>
          getHostPathFieldBuilder() {
        if (hostPathBuilder_ == null) {
          hostPathBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.HostPathVolumeSource,
                  io.kubernetes.client.proto.V1.HostPathVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.HostPathVolumeSourceOrBuilder>(
                  getHostPath(), getParentForChildren(), isClean());
          hostPath_ = null;
        }
        return hostPathBuilder_;
      }

      private io.kubernetes.client.proto.V1.EmptyDirVolumeSource emptyDir_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource,
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder,
              io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder>
          emptyDirBuilder_;
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public boolean hasEmptyDir() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource getEmptyDir() {
        if (emptyDirBuilder_ == null) {
          return emptyDir_ == null
              ? io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance()
              : emptyDir_;
        } else {
          return emptyDirBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public Builder setEmptyDir(io.kubernetes.client.proto.V1.EmptyDirVolumeSource value) {
        if (emptyDirBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          emptyDir_ = value;
          onChanged();
        } else {
          emptyDirBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public Builder setEmptyDir(
          io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder builderForValue) {
        if (emptyDirBuilder_ == null) {
          emptyDir_ = builderForValue.build();
          onChanged();
        } else {
          emptyDirBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public Builder mergeEmptyDir(io.kubernetes.client.proto.V1.EmptyDirVolumeSource value) {
        if (emptyDirBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && emptyDir_ != null
              && emptyDir_
                  != io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance()) {
            emptyDir_ =
                io.kubernetes.client.proto.V1.EmptyDirVolumeSource.newBuilder(emptyDir_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            emptyDir_ = value;
          }
          onChanged();
        } else {
          emptyDirBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public Builder clearEmptyDir() {
        if (emptyDirBuilder_ == null) {
          emptyDir_ = null;
          onChanged();
        } else {
          emptyDirBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder getEmptyDirBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getEmptyDirFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      public io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder getEmptyDirOrBuilder() {
        if (emptyDirBuilder_ != null) {
          return emptyDirBuilder_.getMessageOrBuilder();
        } else {
          return emptyDir_ == null
              ? io.kubernetes.client.proto.V1.EmptyDirVolumeSource.getDefaultInstance()
              : emptyDir_;
        }
      }
      /**
       *
       *
       * <pre>
       * EmptyDir represents a temporary directory that shares a pod's lifetime.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.EmptyDirVolumeSource emptyDir = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource,
              io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder,
              io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder>
          getEmptyDirFieldBuilder() {
        if (emptyDirBuilder_ == null) {
          emptyDirBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.EmptyDirVolumeSource,
                  io.kubernetes.client.proto.V1.EmptyDirVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.EmptyDirVolumeSourceOrBuilder>(
                  getEmptyDir(), getParentForChildren(), isClean());
          emptyDir_ = null;
        }
        return emptyDirBuilder_;
      }

      private io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource gcePersistentDisk_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>
          gcePersistentDiskBuilder_;
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public boolean hasGcePersistentDisk() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource getGcePersistentDisk() {
        if (gcePersistentDiskBuilder_ == null) {
          return gcePersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
              : gcePersistentDisk_;
        } else {
          return gcePersistentDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public Builder setGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource value) {
        if (gcePersistentDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gcePersistentDisk_ = value;
          onChanged();
        } else {
          gcePersistentDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public Builder setGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder builderForValue) {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = builderForValue.build();
          onChanged();
        } else {
          gcePersistentDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public Builder mergeGcePersistentDisk(
          io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource value) {
        if (gcePersistentDiskBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)
              && gcePersistentDisk_ != null
              && gcePersistentDisk_
                  != io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource
                      .getDefaultInstance()) {
            gcePersistentDisk_ =
                io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.newBuilder(
                        gcePersistentDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            gcePersistentDisk_ = value;
          }
          onChanged();
        } else {
          gcePersistentDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000004;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public Builder clearGcePersistentDisk() {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDisk_ = null;
          onChanged();
        } else {
          gcePersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder
          getGcePersistentDiskBuilder() {
        bitField0_ |= 0x00000004;
        onChanged();
        return getGcePersistentDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      public io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder
          getGcePersistentDiskOrBuilder() {
        if (gcePersistentDiskBuilder_ != null) {
          return gcePersistentDiskBuilder_.getMessageOrBuilder();
        } else {
          return gcePersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.getDefaultInstance()
              : gcePersistentDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * GCEPersistentDisk represents a GCE Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.GCEPersistentDiskVolumeSource gcePersistentDisk = 3;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>
          getGcePersistentDiskFieldBuilder() {
        if (gcePersistentDiskBuilder_ == null) {
          gcePersistentDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource,
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.GCEPersistentDiskVolumeSourceOrBuilder>(
                  getGcePersistentDisk(), getParentForChildren(), isClean());
          gcePersistentDisk_ = null;
        }
        return gcePersistentDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>
          awsElasticBlockStoreBuilder_;
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public boolean hasAwsElasticBlockStore() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
          getAwsElasticBlockStore() {
        if (awsElasticBlockStoreBuilder_ == null) {
          return awsElasticBlockStore_ == null
              ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
              : awsElasticBlockStore_;
        } else {
          return awsElasticBlockStoreBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public Builder setAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource value) {
        if (awsElasticBlockStoreBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          awsElasticBlockStore_ = value;
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public Builder setAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder builderForValue) {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = builderForValue.build();
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public Builder mergeAwsElasticBlockStore(
          io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource value) {
        if (awsElasticBlockStoreBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008)
              && awsElasticBlockStore_ != null
              && awsElasticBlockStore_
                  != io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource
                      .getDefaultInstance()) {
            awsElasticBlockStore_ =
                io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.newBuilder(
                        awsElasticBlockStore_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            awsElasticBlockStore_ = value;
          }
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public Builder clearAwsElasticBlockStore() {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStore_ = null;
          onChanged();
        } else {
          awsElasticBlockStoreBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder
          getAwsElasticBlockStoreBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getAwsElasticBlockStoreFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      public io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder
          getAwsElasticBlockStoreOrBuilder() {
        if (awsElasticBlockStoreBuilder_ != null) {
          return awsElasticBlockStoreBuilder_.getMessageOrBuilder();
        } else {
          return awsElasticBlockStore_ == null
              ? io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.getDefaultInstance()
              : awsElasticBlockStore_;
        }
      }
      /**
       *
       *
       * <pre>
       * AWSElasticBlockStore represents an AWS Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.AWSElasticBlockStoreVolumeSource awsElasticBlockStore = 4;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>
          getAwsElasticBlockStoreFieldBuilder() {
        if (awsElasticBlockStoreBuilder_ == null) {
          awsElasticBlockStoreBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource,
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AWSElasticBlockStoreVolumeSourceOrBuilder>(
                  getAwsElasticBlockStore(), getParentForChildren(), isClean());
          awsElasticBlockStore_ = null;
        }
        return awsElasticBlockStoreBuilder_;
      }

      private io.kubernetes.client.proto.V1.GitRepoVolumeSource gitRepo_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GitRepoVolumeSource,
              io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder>
          gitRepoBuilder_;
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public boolean hasGitRepo() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public io.kubernetes.client.proto.V1.GitRepoVolumeSource getGitRepo() {
        if (gitRepoBuilder_ == null) {
          return gitRepo_ == null
              ? io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance()
              : gitRepo_;
        } else {
          return gitRepoBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public Builder setGitRepo(io.kubernetes.client.proto.V1.GitRepoVolumeSource value) {
        if (gitRepoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gitRepo_ = value;
          onChanged();
        } else {
          gitRepoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public Builder setGitRepo(
          io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder builderForValue) {
        if (gitRepoBuilder_ == null) {
          gitRepo_ = builderForValue.build();
          onChanged();
        } else {
          gitRepoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public Builder mergeGitRepo(io.kubernetes.client.proto.V1.GitRepoVolumeSource value) {
        if (gitRepoBuilder_ == null) {
          if (((bitField0_ & 0x00000010) == 0x00000010)
              && gitRepo_ != null
              && gitRepo_
                  != io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance()) {
            gitRepo_ =
                io.kubernetes.client.proto.V1.GitRepoVolumeSource.newBuilder(gitRepo_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            gitRepo_ = value;
          }
          onChanged();
        } else {
          gitRepoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000010;
        return this;
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public Builder clearGitRepo() {
        if (gitRepoBuilder_ == null) {
          gitRepo_ = null;
          onChanged();
        } else {
          gitRepoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder getGitRepoBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getGitRepoFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      public io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder getGitRepoOrBuilder() {
        if (gitRepoBuilder_ != null) {
          return gitRepoBuilder_.getMessageOrBuilder();
        } else {
          return gitRepo_ == null
              ? io.kubernetes.client.proto.V1.GitRepoVolumeSource.getDefaultInstance()
              : gitRepo_;
        }
      }
      /**
       *
       *
       * <pre>
       * GitRepo represents a git repository at a particular revision.
       * DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an
       * EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir
       * into the Pod's container.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GitRepoVolumeSource gitRepo = 5;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GitRepoVolumeSource,
              io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder>
          getGitRepoFieldBuilder() {
        if (gitRepoBuilder_ == null) {
          gitRepoBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.GitRepoVolumeSource,
                  io.kubernetes.client.proto.V1.GitRepoVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.GitRepoVolumeSourceOrBuilder>(
                  getGitRepo(), getParentForChildren(), isClean());
          gitRepo_ = null;
        }
        return gitRepoBuilder_;
      }

      private io.kubernetes.client.proto.V1.SecretVolumeSource secret_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretVolumeSource,
              io.kubernetes.client.proto.V1.SecretVolumeSource.Builder,
              io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder>
          secretBuilder_;
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public boolean hasSecret() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public io.kubernetes.client.proto.V1.SecretVolumeSource getSecret() {
        if (secretBuilder_ == null) {
          return secret_ == null
              ? io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance()
              : secret_;
        } else {
          return secretBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public Builder setSecret(io.kubernetes.client.proto.V1.SecretVolumeSource value) {
        if (secretBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          secret_ = value;
          onChanged();
        } else {
          secretBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public Builder setSecret(
          io.kubernetes.client.proto.V1.SecretVolumeSource.Builder builderForValue) {
        if (secretBuilder_ == null) {
          secret_ = builderForValue.build();
          onChanged();
        } else {
          secretBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public Builder mergeSecret(io.kubernetes.client.proto.V1.SecretVolumeSource value) {
        if (secretBuilder_ == null) {
          if (((bitField0_ & 0x00000020) == 0x00000020)
              && secret_ != null
              && secret_ != io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance()) {
            secret_ =
                io.kubernetes.client.proto.V1.SecretVolumeSource.newBuilder(secret_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            secret_ = value;
          }
          onChanged();
        } else {
          secretBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000020;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public Builder clearSecret() {
        if (secretBuilder_ == null) {
          secret_ = null;
          onChanged();
        } else {
          secretBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000020);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public io.kubernetes.client.proto.V1.SecretVolumeSource.Builder getSecretBuilder() {
        bitField0_ |= 0x00000020;
        onChanged();
        return getSecretFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      public io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder getSecretOrBuilder() {
        if (secretBuilder_ != null) {
          return secretBuilder_.getMessageOrBuilder();
        } else {
          return secret_ == null
              ? io.kubernetes.client.proto.V1.SecretVolumeSource.getDefaultInstance()
              : secret_;
        }
      }
      /**
       *
       *
       * <pre>
       * Secret represents a secret that should populate this volume.
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#secret
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.SecretVolumeSource secret = 6;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.SecretVolumeSource,
              io.kubernetes.client.proto.V1.SecretVolumeSource.Builder,
              io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder>
          getSecretFieldBuilder() {
        if (secretBuilder_ == null) {
          secretBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.SecretVolumeSource,
                  io.kubernetes.client.proto.V1.SecretVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.SecretVolumeSourceOrBuilder>(
                  getSecret(), getParentForChildren(), isClean());
          secret_ = null;
        }
        return secretBuilder_;
      }

      private io.kubernetes.client.proto.V1.NFSVolumeSource nfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NFSVolumeSource,
              io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>
          nfsBuilder_;
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public boolean hasNfs() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSource getNfs() {
        if (nfsBuilder_ == null) {
          return nfs_ == null
              ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
              : nfs_;
        } else {
          return nfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public Builder setNfs(io.kubernetes.client.proto.V1.NFSVolumeSource value) {
        if (nfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          nfs_ = value;
          onChanged();
        } else {
          nfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public Builder setNfs(io.kubernetes.client.proto.V1.NFSVolumeSource.Builder builderForValue) {
        if (nfsBuilder_ == null) {
          nfs_ = builderForValue.build();
          onChanged();
        } else {
          nfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public Builder mergeNfs(io.kubernetes.client.proto.V1.NFSVolumeSource value) {
        if (nfsBuilder_ == null) {
          if (((bitField0_ & 0x00000040) == 0x00000040)
              && nfs_ != null
              && nfs_ != io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()) {
            nfs_ =
                io.kubernetes.client.proto.V1.NFSVolumeSource.newBuilder(nfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            nfs_ = value;
          }
          onChanged();
        } else {
          nfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000040;
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public Builder clearNfs() {
        if (nfsBuilder_ == null) {
          nfs_ = null;
          onChanged();
        } else {
          nfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000040);
        return this;
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSource.Builder getNfsBuilder() {
        bitField0_ |= 0x00000040;
        onChanged();
        return getNfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      public io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder getNfsOrBuilder() {
        if (nfsBuilder_ != null) {
          return nfsBuilder_.getMessageOrBuilder();
        } else {
          return nfs_ == null
              ? io.kubernetes.client.proto.V1.NFSVolumeSource.getDefaultInstance()
              : nfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * NFS represents an NFS mount on the host that shares a pod's lifetime
       * More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.NFSVolumeSource nfs = 7;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.NFSVolumeSource,
              io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>
          getNfsFieldBuilder() {
        if (nfsBuilder_ == null) {
          nfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.NFSVolumeSource,
                  io.kubernetes.client.proto.V1.NFSVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.NFSVolumeSourceOrBuilder>(
                  getNfs(), getParentForChildren(), isClean());
          nfs_ = null;
        }
        return nfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.ISCSIVolumeSource iscsi_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ISCSIVolumeSource,
              io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder>
          iscsiBuilder_;
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public boolean hasIscsi() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource getIscsi() {
        if (iscsiBuilder_ == null) {
          return iscsi_ == null
              ? io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance()
              : iscsi_;
        } else {
          return iscsiBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public Builder setIscsi(io.kubernetes.client.proto.V1.ISCSIVolumeSource value) {
        if (iscsiBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          iscsi_ = value;
          onChanged();
        } else {
          iscsiBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public Builder setIscsi(
          io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder builderForValue) {
        if (iscsiBuilder_ == null) {
          iscsi_ = builderForValue.build();
          onChanged();
        } else {
          iscsiBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public Builder mergeIscsi(io.kubernetes.client.proto.V1.ISCSIVolumeSource value) {
        if (iscsiBuilder_ == null) {
          if (((bitField0_ & 0x00000080) == 0x00000080)
              && iscsi_ != null
              && iscsi_ != io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance()) {
            iscsi_ =
                io.kubernetes.client.proto.V1.ISCSIVolumeSource.newBuilder(iscsi_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            iscsi_ = value;
          }
          onChanged();
        } else {
          iscsiBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000080;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public Builder clearIscsi() {
        if (iscsiBuilder_ == null) {
          iscsi_ = null;
          onChanged();
        } else {
          iscsiBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000080);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder getIscsiBuilder() {
        bitField0_ |= 0x00000080;
        onChanged();
        return getIscsiFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      public io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder getIscsiOrBuilder() {
        if (iscsiBuilder_ != null) {
          return iscsiBuilder_.getMessageOrBuilder();
        } else {
          return iscsi_ == null
              ? io.kubernetes.client.proto.V1.ISCSIVolumeSource.getDefaultInstance()
              : iscsi_;
        }
      }
      /**
       *
       *
       * <pre>
       * ISCSI represents an ISCSI Disk resource that is attached to a
       * kubelet's host machine and then exposed to the pod.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ISCSIVolumeSource iscsi = 8;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ISCSIVolumeSource,
              io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder>
          getIscsiFieldBuilder() {
        if (iscsiBuilder_ == null) {
          iscsiBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ISCSIVolumeSource,
                  io.kubernetes.client.proto.V1.ISCSIVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ISCSIVolumeSourceOrBuilder>(
                  getIscsi(), getParentForChildren(), isClean());
          iscsi_ = null;
        }
        return iscsiBuilder_;
      }

      private io.kubernetes.client.proto.V1.GlusterfsVolumeSource glusterfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource,
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder>
          glusterfsBuilder_;
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public boolean hasGlusterfs() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource getGlusterfs() {
        if (glusterfsBuilder_ == null) {
          return glusterfs_ == null
              ? io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance()
              : glusterfs_;
        } else {
          return glusterfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public Builder setGlusterfs(io.kubernetes.client.proto.V1.GlusterfsVolumeSource value) {
        if (glusterfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          glusterfs_ = value;
          onChanged();
        } else {
          glusterfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public Builder setGlusterfs(
          io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder builderForValue) {
        if (glusterfsBuilder_ == null) {
          glusterfs_ = builderForValue.build();
          onChanged();
        } else {
          glusterfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public Builder mergeGlusterfs(io.kubernetes.client.proto.V1.GlusterfsVolumeSource value) {
        if (glusterfsBuilder_ == null) {
          if (((bitField0_ & 0x00000100) == 0x00000100)
              && glusterfs_ != null
              && glusterfs_
                  != io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance()) {
            glusterfs_ =
                io.kubernetes.client.proto.V1.GlusterfsVolumeSource.newBuilder(glusterfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            glusterfs_ = value;
          }
          onChanged();
        } else {
          glusterfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000100;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public Builder clearGlusterfs() {
        if (glusterfsBuilder_ == null) {
          glusterfs_ = null;
          onChanged();
        } else {
          glusterfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000100);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder getGlusterfsBuilder() {
        bitField0_ |= 0x00000100;
        onChanged();
        return getGlusterfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      public io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder getGlusterfsOrBuilder() {
        if (glusterfsBuilder_ != null) {
          return glusterfsBuilder_.getMessageOrBuilder();
        } else {
          return glusterfs_ == null
              ? io.kubernetes.client.proto.V1.GlusterfsVolumeSource.getDefaultInstance()
              : glusterfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * Glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.GlusterfsVolumeSource glusterfs = 9;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource,
              io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder,
              io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder>
          getGlusterfsFieldBuilder() {
        if (glusterfsBuilder_ == null) {
          glusterfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.GlusterfsVolumeSource,
                  io.kubernetes.client.proto.V1.GlusterfsVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.GlusterfsVolumeSourceOrBuilder>(
                  getGlusterfs(), getParentForChildren(), isClean());
          glusterfs_ = null;
        }
        return glusterfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
          persistentVolumeClaim_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder>
          persistentVolumeClaimBuilder_;
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public boolean hasPersistentVolumeClaim() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
          getPersistentVolumeClaim() {
        if (persistentVolumeClaimBuilder_ == null) {
          return persistentVolumeClaim_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance()
              : persistentVolumeClaim_;
        } else {
          return persistentVolumeClaimBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public Builder setPersistentVolumeClaim(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource value) {
        if (persistentVolumeClaimBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          persistentVolumeClaim_ = value;
          onChanged();
        } else {
          persistentVolumeClaimBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public Builder setPersistentVolumeClaim(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder builderForValue) {
        if (persistentVolumeClaimBuilder_ == null) {
          persistentVolumeClaim_ = builderForValue.build();
          onChanged();
        } else {
          persistentVolumeClaimBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public Builder mergePersistentVolumeClaim(
          io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource value) {
        if (persistentVolumeClaimBuilder_ == null) {
          if (((bitField0_ & 0x00000200) == 0x00000200)
              && persistentVolumeClaim_ != null
              && persistentVolumeClaim_
                  != io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource
                      .getDefaultInstance()) {
            persistentVolumeClaim_ =
                io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.newBuilder(
                        persistentVolumeClaim_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            persistentVolumeClaim_ = value;
          }
          onChanged();
        } else {
          persistentVolumeClaimBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000200;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public Builder clearPersistentVolumeClaim() {
        if (persistentVolumeClaimBuilder_ == null) {
          persistentVolumeClaim_ = null;
          onChanged();
        } else {
          persistentVolumeClaimBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000200);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder
          getPersistentVolumeClaimBuilder() {
        bitField0_ |= 0x00000200;
        onChanged();
        return getPersistentVolumeClaimFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder
          getPersistentVolumeClaimOrBuilder() {
        if (persistentVolumeClaimBuilder_ != null) {
          return persistentVolumeClaimBuilder_.getMessageOrBuilder();
        } else {
          return persistentVolumeClaim_ == null
              ? io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.getDefaultInstance()
              : persistentVolumeClaim_;
        }
      }
      /**
       *
       *
       * <pre>
       * PersistentVolumeClaimVolumeSource represents a reference to a
       * PersistentVolumeClaim in the same namespace.
       * More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
       * +optional
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PersistentVolumeClaimVolumeSource persistentVolumeClaim = 10;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder>
          getPersistentVolumeClaimFieldBuilder() {
        if (persistentVolumeClaimBuilder_ == null) {
          persistentVolumeClaimBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PersistentVolumeClaimVolumeSourceOrBuilder>(
                  getPersistentVolumeClaim(), getParentForChildren(), isClean());
          persistentVolumeClaim_ = null;
        }
        return persistentVolumeClaimBuilder_;
      }

      private io.kubernetes.client.proto.V1.RBDVolumeSource rbd_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.RBDVolumeSource,
              io.kubernetes.client.proto.V1.RBDVolumeSource.Builder,
              io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder>
          rbdBuilder_;
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public boolean hasRbd() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public io.kubernetes.client.proto.V1.RBDVolumeSource getRbd() {
        if (rbdBuilder_ == null) {
          return rbd_ == null
              ? io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance()
              : rbd_;
        } else {
          return rbdBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public Builder setRbd(io.kubernetes.client.proto.V1.RBDVolumeSource value) {
        if (rbdBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          rbd_ = value;
          onChanged();
        } else {
          rbdBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public Builder setRbd(io.kubernetes.client.proto.V1.RBDVolumeSource.Builder builderForValue) {
        if (rbdBuilder_ == null) {
          rbd_ = builderForValue.build();
          onChanged();
        } else {
          rbdBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public Builder mergeRbd(io.kubernetes.client.proto.V1.RBDVolumeSource value) {
        if (rbdBuilder_ == null) {
          if (((bitField0_ & 0x00000400) == 0x00000400)
              && rbd_ != null
              && rbd_ != io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance()) {
            rbd_ =
                io.kubernetes.client.proto.V1.RBDVolumeSource.newBuilder(rbd_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            rbd_ = value;
          }
          onChanged();
        } else {
          rbdBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000400;
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public Builder clearRbd() {
        if (rbdBuilder_ == null) {
          rbd_ = null;
          onChanged();
        } else {
          rbdBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000400);
        return this;
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public io.kubernetes.client.proto.V1.RBDVolumeSource.Builder getRbdBuilder() {
        bitField0_ |= 0x00000400;
        onChanged();
        return getRbdFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      public io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder getRbdOrBuilder() {
        if (rbdBuilder_ != null) {
          return rbdBuilder_.getMessageOrBuilder();
        } else {
          return rbd_ == null
              ? io.kubernetes.client.proto.V1.RBDVolumeSource.getDefaultInstance()
              : rbd_;
        }
      }
      /**
       *
       *
       * <pre>
       * RBD represents a Rados Block Device mount on the host that shares a pod's lifetime.
       * More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.RBDVolumeSource rbd = 11;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.RBDVolumeSource,
              io.kubernetes.client.proto.V1.RBDVolumeSource.Builder,
              io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder>
          getRbdFieldBuilder() {
        if (rbdBuilder_ == null) {
          rbdBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.RBDVolumeSource,
                  io.kubernetes.client.proto.V1.RBDVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.RBDVolumeSourceOrBuilder>(
                  getRbd(), getParentForChildren(), isClean());
          rbd_ = null;
        }
        return rbdBuilder_;
      }

      private io.kubernetes.client.proto.V1.FlexVolumeSource flexVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlexVolumeSource,
              io.kubernetes.client.proto.V1.FlexVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder>
          flexVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public boolean hasFlexVolume() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexVolumeSource getFlexVolume() {
        if (flexVolumeBuilder_ == null) {
          return flexVolume_ == null
              ? io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance()
              : flexVolume_;
        } else {
          return flexVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public Builder setFlexVolume(io.kubernetes.client.proto.V1.FlexVolumeSource value) {
        if (flexVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flexVolume_ = value;
          onChanged();
        } else {
          flexVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public Builder setFlexVolume(
          io.kubernetes.client.proto.V1.FlexVolumeSource.Builder builderForValue) {
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = builderForValue.build();
          onChanged();
        } else {
          flexVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public Builder mergeFlexVolume(io.kubernetes.client.proto.V1.FlexVolumeSource value) {
        if (flexVolumeBuilder_ == null) {
          if (((bitField0_ & 0x00000800) == 0x00000800)
              && flexVolume_ != null
              && flexVolume_
                  != io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance()) {
            flexVolume_ =
                io.kubernetes.client.proto.V1.FlexVolumeSource.newBuilder(flexVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            flexVolume_ = value;
          }
          onChanged();
        } else {
          flexVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000800;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public Builder clearFlexVolume() {
        if (flexVolumeBuilder_ == null) {
          flexVolume_ = null;
          onChanged();
        } else {
          flexVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000800);
        return this;
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexVolumeSource.Builder getFlexVolumeBuilder() {
        bitField0_ |= 0x00000800;
        onChanged();
        return getFlexVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      public io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder getFlexVolumeOrBuilder() {
        if (flexVolumeBuilder_ != null) {
          return flexVolumeBuilder_.getMessageOrBuilder();
        } else {
          return flexVolume_ == null
              ? io.kubernetes.client.proto.V1.FlexVolumeSource.getDefaultInstance()
              : flexVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * FlexVolume represents a generic volume resource that is
       * provisioned/attached using an exec based plugin.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlexVolumeSource flexVolume = 12;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlexVolumeSource,
              io.kubernetes.client.proto.V1.FlexVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder>
          getFlexVolumeFieldBuilder() {
        if (flexVolumeBuilder_ == null) {
          flexVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FlexVolumeSource,
                  io.kubernetes.client.proto.V1.FlexVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FlexVolumeSourceOrBuilder>(
                  getFlexVolume(), getParentForChildren(), isClean());
          flexVolume_ = null;
        }
        return flexVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.CinderVolumeSource cinder_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CinderVolumeSource,
              io.kubernetes.client.proto.V1.CinderVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder>
          cinderBuilder_;
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public boolean hasCinder() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public io.kubernetes.client.proto.V1.CinderVolumeSource getCinder() {
        if (cinderBuilder_ == null) {
          return cinder_ == null
              ? io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance()
              : cinder_;
        } else {
          return cinderBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public Builder setCinder(io.kubernetes.client.proto.V1.CinderVolumeSource value) {
        if (cinderBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cinder_ = value;
          onChanged();
        } else {
          cinderBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public Builder setCinder(
          io.kubernetes.client.proto.V1.CinderVolumeSource.Builder builderForValue) {
        if (cinderBuilder_ == null) {
          cinder_ = builderForValue.build();
          onChanged();
        } else {
          cinderBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public Builder mergeCinder(io.kubernetes.client.proto.V1.CinderVolumeSource value) {
        if (cinderBuilder_ == null) {
          if (((bitField0_ & 0x00001000) == 0x00001000)
              && cinder_ != null
              && cinder_ != io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance()) {
            cinder_ =
                io.kubernetes.client.proto.V1.CinderVolumeSource.newBuilder(cinder_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            cinder_ = value;
          }
          onChanged();
        } else {
          cinderBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00001000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public Builder clearCinder() {
        if (cinderBuilder_ == null) {
          cinder_ = null;
          onChanged();
        } else {
          cinderBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public io.kubernetes.client.proto.V1.CinderVolumeSource.Builder getCinderBuilder() {
        bitField0_ |= 0x00001000;
        onChanged();
        return getCinderFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      public io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder getCinderOrBuilder() {
        if (cinderBuilder_ != null) {
          return cinderBuilder_.getMessageOrBuilder();
        } else {
          return cinder_ == null
              ? io.kubernetes.client.proto.V1.CinderVolumeSource.getDefaultInstance()
              : cinder_;
        }
      }
      /**
       *
       *
       * <pre>
       * Cinder represents a cinder volume attached and mounted on kubelets host machine
       * More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CinderVolumeSource cinder = 13;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CinderVolumeSource,
              io.kubernetes.client.proto.V1.CinderVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder>
          getCinderFieldBuilder() {
        if (cinderBuilder_ == null) {
          cinderBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.CinderVolumeSource,
                  io.kubernetes.client.proto.V1.CinderVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.CinderVolumeSourceOrBuilder>(
                  getCinder(), getParentForChildren(), isClean());
          cinder_ = null;
        }
        return cinderBuilder_;
      }

      private io.kubernetes.client.proto.V1.CephFSVolumeSource cephfs_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CephFSVolumeSource,
              io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder>
          cephfsBuilder_;
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public boolean hasCephfs() {
        return ((bitField0_ & 0x00002000) == 0x00002000);
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSVolumeSource getCephfs() {
        if (cephfsBuilder_ == null) {
          return cephfs_ == null
              ? io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance()
              : cephfs_;
        } else {
          return cephfsBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public Builder setCephfs(io.kubernetes.client.proto.V1.CephFSVolumeSource value) {
        if (cephfsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          cephfs_ = value;
          onChanged();
        } else {
          cephfsBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public Builder setCephfs(
          io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder builderForValue) {
        if (cephfsBuilder_ == null) {
          cephfs_ = builderForValue.build();
          onChanged();
        } else {
          cephfsBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public Builder mergeCephfs(io.kubernetes.client.proto.V1.CephFSVolumeSource value) {
        if (cephfsBuilder_ == null) {
          if (((bitField0_ & 0x00002000) == 0x00002000)
              && cephfs_ != null
              && cephfs_ != io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance()) {
            cephfs_ =
                io.kubernetes.client.proto.V1.CephFSVolumeSource.newBuilder(cephfs_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            cephfs_ = value;
          }
          onChanged();
        } else {
          cephfsBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00002000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public Builder clearCephfs() {
        if (cephfsBuilder_ == null) {
          cephfs_ = null;
          onChanged();
        } else {
          cephfsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00002000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder getCephfsBuilder() {
        bitField0_ |= 0x00002000;
        onChanged();
        return getCephfsFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      public io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder getCephfsOrBuilder() {
        if (cephfsBuilder_ != null) {
          return cephfsBuilder_.getMessageOrBuilder();
        } else {
          return cephfs_ == null
              ? io.kubernetes.client.proto.V1.CephFSVolumeSource.getDefaultInstance()
              : cephfs_;
        }
      }
      /**
       *
       *
       * <pre>
       * CephFS represents a Ceph FS mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.CephFSVolumeSource cephfs = 14;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.CephFSVolumeSource,
              io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder>
          getCephfsFieldBuilder() {
        if (cephfsBuilder_ == null) {
          cephfsBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.CephFSVolumeSource,
                  io.kubernetes.client.proto.V1.CephFSVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.CephFSVolumeSourceOrBuilder>(
                  getCephfs(), getParentForChildren(), isClean());
          cephfs_ = null;
        }
        return cephfsBuilder_;
      }

      private io.kubernetes.client.proto.V1.FlockerVolumeSource flocker_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlockerVolumeSource,
              io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>
          flockerBuilder_;
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public boolean hasFlocker() {
        return ((bitField0_ & 0x00004000) == 0x00004000);
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSource getFlocker() {
        if (flockerBuilder_ == null) {
          return flocker_ == null
              ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
              : flocker_;
        } else {
          return flockerBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public Builder setFlocker(io.kubernetes.client.proto.V1.FlockerVolumeSource value) {
        if (flockerBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          flocker_ = value;
          onChanged();
        } else {
          flockerBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public Builder setFlocker(
          io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder builderForValue) {
        if (flockerBuilder_ == null) {
          flocker_ = builderForValue.build();
          onChanged();
        } else {
          flockerBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public Builder mergeFlocker(io.kubernetes.client.proto.V1.FlockerVolumeSource value) {
        if (flockerBuilder_ == null) {
          if (((bitField0_ & 0x00004000) == 0x00004000)
              && flocker_ != null
              && flocker_
                  != io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()) {
            flocker_ =
                io.kubernetes.client.proto.V1.FlockerVolumeSource.newBuilder(flocker_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            flocker_ = value;
          }
          onChanged();
        } else {
          flockerBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00004000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public Builder clearFlocker() {
        if (flockerBuilder_ == null) {
          flocker_ = null;
          onChanged();
        } else {
          flockerBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00004000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder getFlockerBuilder() {
        bitField0_ |= 0x00004000;
        onChanged();
        return getFlockerFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      public io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder getFlockerOrBuilder() {
        if (flockerBuilder_ != null) {
          return flockerBuilder_.getMessageOrBuilder();
        } else {
          return flocker_ == null
              ? io.kubernetes.client.proto.V1.FlockerVolumeSource.getDefaultInstance()
              : flocker_;
        }
      }
      /**
       *
       *
       * <pre>
       * Flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FlockerVolumeSource flocker = 15;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FlockerVolumeSource,
              io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>
          getFlockerFieldBuilder() {
        if (flockerBuilder_ == null) {
          flockerBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FlockerVolumeSource,
                  io.kubernetes.client.proto.V1.FlockerVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FlockerVolumeSourceOrBuilder>(
                  getFlocker(), getParentForChildren(), isClean());
          flocker_ = null;
        }
        return flockerBuilder_;
      }

      private io.kubernetes.client.proto.V1.DownwardAPIVolumeSource downwardAPI_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder>
          downwardAPIBuilder_;
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public boolean hasDownwardAPI() {
        return ((bitField0_ & 0x00008000) == 0x00008000);
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource getDownwardAPI() {
        if (downwardAPIBuilder_ == null) {
          return downwardAPI_ == null
              ? io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance()
              : downwardAPI_;
        } else {
          return downwardAPIBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public Builder setDownwardAPI(io.kubernetes.client.proto.V1.DownwardAPIVolumeSource value) {
        if (downwardAPIBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          downwardAPI_ = value;
          onChanged();
        } else {
          downwardAPIBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public Builder setDownwardAPI(
          io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder builderForValue) {
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = builderForValue.build();
          onChanged();
        } else {
          downwardAPIBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public Builder mergeDownwardAPI(io.kubernetes.client.proto.V1.DownwardAPIVolumeSource value) {
        if (downwardAPIBuilder_ == null) {
          if (((bitField0_ & 0x00008000) == 0x00008000)
              && downwardAPI_ != null
              && downwardAPI_
                  != io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance()) {
            downwardAPI_ =
                io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.newBuilder(downwardAPI_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            downwardAPI_ = value;
          }
          onChanged();
        } else {
          downwardAPIBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00008000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public Builder clearDownwardAPI() {
        if (downwardAPIBuilder_ == null) {
          downwardAPI_ = null;
          onChanged();
        } else {
          downwardAPIBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00008000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder getDownwardAPIBuilder() {
        bitField0_ |= 0x00008000;
        onChanged();
        return getDownwardAPIFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      public io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder
          getDownwardAPIOrBuilder() {
        if (downwardAPIBuilder_ != null) {
          return downwardAPIBuilder_.getMessageOrBuilder();
        } else {
          return downwardAPI_ == null
              ? io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.getDefaultInstance()
              : downwardAPI_;
        }
      }
      /**
       *
       *
       * <pre>
       * DownwardAPI represents downward API about the pod that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.DownwardAPIVolumeSource downwardAPI = 16;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder,
              io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder>
          getDownwardAPIFieldBuilder() {
        if (downwardAPIBuilder_ == null) {
          downwardAPIBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeSource,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.DownwardAPIVolumeSourceOrBuilder>(
                  getDownwardAPI(), getParentForChildren(), isClean());
          downwardAPI_ = null;
        }
        return downwardAPIBuilder_;
      }

      private io.kubernetes.client.proto.V1.FCVolumeSource fc_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FCVolumeSource,
              io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>
          fcBuilder_;
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public boolean hasFc() {
        return ((bitField0_ & 0x00010000) == 0x00010000);
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSource getFc() {
        if (fcBuilder_ == null) {
          return fc_ == null
              ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()
              : fc_;
        } else {
          return fcBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public Builder setFc(io.kubernetes.client.proto.V1.FCVolumeSource value) {
        if (fcBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          fc_ = value;
          onChanged();
        } else {
          fcBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public Builder setFc(io.kubernetes.client.proto.V1.FCVolumeSource.Builder builderForValue) {
        if (fcBuilder_ == null) {
          fc_ = builderForValue.build();
          onChanged();
        } else {
          fcBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public Builder mergeFc(io.kubernetes.client.proto.V1.FCVolumeSource value) {
        if (fcBuilder_ == null) {
          if (((bitField0_ & 0x00010000) == 0x00010000)
              && fc_ != null
              && fc_ != io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()) {
            fc_ =
                io.kubernetes.client.proto.V1.FCVolumeSource.newBuilder(fc_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            fc_ = value;
          }
          onChanged();
        } else {
          fcBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00010000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public Builder clearFc() {
        if (fcBuilder_ == null) {
          fc_ = null;
          onChanged();
        } else {
          fcBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00010000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSource.Builder getFcBuilder() {
        bitField0_ |= 0x00010000;
        onChanged();
        return getFcFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      public io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder getFcOrBuilder() {
        if (fcBuilder_ != null) {
          return fcBuilder_.getMessageOrBuilder();
        } else {
          return fc_ == null
              ? io.kubernetes.client.proto.V1.FCVolumeSource.getDefaultInstance()
              : fc_;
        }
      }
      /**
       *
       *
       * <pre>
       * FC represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.FCVolumeSource fc = 17;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.FCVolumeSource,
              io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
              io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>
          getFcFieldBuilder() {
        if (fcBuilder_ == null) {
          fcBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.FCVolumeSource,
                  io.kubernetes.client.proto.V1.FCVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.FCVolumeSourceOrBuilder>(
                  getFc(), getParentForChildren(), isClean());
          fc_ = null;
        }
        return fcBuilder_;
      }

      private io.kubernetes.client.proto.V1.AzureFileVolumeSource azureFile_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureFileVolumeSource,
              io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder>
          azureFileBuilder_;
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public boolean hasAzureFile() {
        return ((bitField0_ & 0x00020000) == 0x00020000);
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource getAzureFile() {
        if (azureFileBuilder_ == null) {
          return azureFile_ == null
              ? io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance()
              : azureFile_;
        } else {
          return azureFileBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public Builder setAzureFile(io.kubernetes.client.proto.V1.AzureFileVolumeSource value) {
        if (azureFileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          azureFile_ = value;
          onChanged();
        } else {
          azureFileBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public Builder setAzureFile(
          io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder builderForValue) {
        if (azureFileBuilder_ == null) {
          azureFile_ = builderForValue.build();
          onChanged();
        } else {
          azureFileBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public Builder mergeAzureFile(io.kubernetes.client.proto.V1.AzureFileVolumeSource value) {
        if (azureFileBuilder_ == null) {
          if (((bitField0_ & 0x00020000) == 0x00020000)
              && azureFile_ != null
              && azureFile_
                  != io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance()) {
            azureFile_ =
                io.kubernetes.client.proto.V1.AzureFileVolumeSource.newBuilder(azureFile_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            azureFile_ = value;
          }
          onChanged();
        } else {
          azureFileBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00020000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public Builder clearAzureFile() {
        if (azureFileBuilder_ == null) {
          azureFile_ = null;
          onChanged();
        } else {
          azureFileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00020000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder getAzureFileBuilder() {
        bitField0_ |= 0x00020000;
        onChanged();
        return getAzureFileFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      public io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder getAzureFileOrBuilder() {
        if (azureFileBuilder_ != null) {
          return azureFileBuilder_.getMessageOrBuilder();
        } else {
          return azureFile_ == null
              ? io.kubernetes.client.proto.V1.AzureFileVolumeSource.getDefaultInstance()
              : azureFile_;
        }
      }
      /**
       *
       *
       * <pre>
       * AzureFile represents an Azure File Service mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureFileVolumeSource azureFile = 18;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureFileVolumeSource,
              io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder>
          getAzureFileFieldBuilder() {
        if (azureFileBuilder_ == null) {
          azureFileBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AzureFileVolumeSource,
                  io.kubernetes.client.proto.V1.AzureFileVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AzureFileVolumeSourceOrBuilder>(
                  getAzureFile(), getParentForChildren(), isClean());
          azureFile_ = null;
        }
        return azureFileBuilder_;
      }

      private io.kubernetes.client.proto.V1.ConfigMapVolumeSource configMap_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource,
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder>
          configMapBuilder_;
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public boolean hasConfigMap() {
        return ((bitField0_ & 0x00040000) == 0x00040000);
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource getConfigMap() {
        if (configMapBuilder_ == null) {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance()
              : configMap_;
        } else {
          return configMapBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public Builder setConfigMap(io.kubernetes.client.proto.V1.ConfigMapVolumeSource value) {
        if (configMapBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          configMap_ = value;
          onChanged();
        } else {
          configMapBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public Builder setConfigMap(
          io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder builderForValue) {
        if (configMapBuilder_ == null) {
          configMap_ = builderForValue.build();
          onChanged();
        } else {
          configMapBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public Builder mergeConfigMap(io.kubernetes.client.proto.V1.ConfigMapVolumeSource value) {
        if (configMapBuilder_ == null) {
          if (((bitField0_ & 0x00040000) == 0x00040000)
              && configMap_ != null
              && configMap_
                  != io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance()) {
            configMap_ =
                io.kubernetes.client.proto.V1.ConfigMapVolumeSource.newBuilder(configMap_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            configMap_ = value;
          }
          onChanged();
        } else {
          configMapBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00040000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public Builder clearConfigMap() {
        if (configMapBuilder_ == null) {
          configMap_ = null;
          onChanged();
        } else {
          configMapBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00040000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder getConfigMapBuilder() {
        bitField0_ |= 0x00040000;
        onChanged();
        return getConfigMapFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      public io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder getConfigMapOrBuilder() {
        if (configMapBuilder_ != null) {
          return configMapBuilder_.getMessageOrBuilder();
        } else {
          return configMap_ == null
              ? io.kubernetes.client.proto.V1.ConfigMapVolumeSource.getDefaultInstance()
              : configMap_;
        }
      }
      /**
       *
       *
       * <pre>
       * ConfigMap represents a configMap that should populate this volume
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ConfigMapVolumeSource configMap = 19;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource,
              io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder>
          getConfigMapFieldBuilder() {
        if (configMapBuilder_ == null) {
          configMapBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ConfigMapVolumeSource,
                  io.kubernetes.client.proto.V1.ConfigMapVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ConfigMapVolumeSourceOrBuilder>(
                  getConfigMap(), getParentForChildren(), isClean());
          configMap_ = null;
        }
        return configMapBuilder_;
      }

      private io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource vsphereVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>
          vsphereVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public boolean hasVsphereVolume() {
        return ((bitField0_ & 0x00080000) == 0x00080000);
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource getVsphereVolume() {
        if (vsphereVolumeBuilder_ == null) {
          return vsphereVolume_ == null
              ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
              : vsphereVolume_;
        } else {
          return vsphereVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public Builder setVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource value) {
        if (vsphereVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          vsphereVolume_ = value;
          onChanged();
        } else {
          vsphereVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public Builder setVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder builderForValue) {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = builderForValue.build();
          onChanged();
        } else {
          vsphereVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public Builder mergeVsphereVolume(
          io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource value) {
        if (vsphereVolumeBuilder_ == null) {
          if (((bitField0_ & 0x00080000) == 0x00080000)
              && vsphereVolume_ != null
              && vsphereVolume_
                  != io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
                      .getDefaultInstance()) {
            vsphereVolume_ =
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.newBuilder(
                        vsphereVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            vsphereVolume_ = value;
          }
          onChanged();
        } else {
          vsphereVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00080000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public Builder clearVsphereVolume() {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolume_ = null;
          onChanged();
        } else {
          vsphereVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00080000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder
          getVsphereVolumeBuilder() {
        bitField0_ |= 0x00080000;
        onChanged();
        return getVsphereVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder
          getVsphereVolumeOrBuilder() {
        if (vsphereVolumeBuilder_ != null) {
          return vsphereVolumeBuilder_.getMessageOrBuilder();
        } else {
          return vsphereVolume_ == null
              ? io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance()
              : vsphereVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * VsphereVolume represents a vSphere volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource vsphereVolume = 20;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>
          getVsphereVolumeFieldBuilder() {
        if (vsphereVolumeBuilder_ == null) {
          vsphereVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource,
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder>(
                  getVsphereVolume(), getParentForChildren(), isClean());
          vsphereVolume_ = null;
        }
        return vsphereVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.QuobyteVolumeSource quobyte_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.QuobyteVolumeSource,
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
              io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>
          quobyteBuilder_;
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public boolean hasQuobyte() {
        return ((bitField0_ & 0x00100000) == 0x00100000);
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource getQuobyte() {
        if (quobyteBuilder_ == null) {
          return quobyte_ == null
              ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
              : quobyte_;
        } else {
          return quobyteBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public Builder setQuobyte(io.kubernetes.client.proto.V1.QuobyteVolumeSource value) {
        if (quobyteBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          quobyte_ = value;
          onChanged();
        } else {
          quobyteBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public Builder setQuobyte(
          io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder builderForValue) {
        if (quobyteBuilder_ == null) {
          quobyte_ = builderForValue.build();
          onChanged();
        } else {
          quobyteBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public Builder mergeQuobyte(io.kubernetes.client.proto.V1.QuobyteVolumeSource value) {
        if (quobyteBuilder_ == null) {
          if (((bitField0_ & 0x00100000) == 0x00100000)
              && quobyte_ != null
              && quobyte_
                  != io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()) {
            quobyte_ =
                io.kubernetes.client.proto.V1.QuobyteVolumeSource.newBuilder(quobyte_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            quobyte_ = value;
          }
          onChanged();
        } else {
          quobyteBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00100000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public Builder clearQuobyte() {
        if (quobyteBuilder_ == null) {
          quobyte_ = null;
          onChanged();
        } else {
          quobyteBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00100000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder getQuobyteBuilder() {
        bitField0_ |= 0x00100000;
        onChanged();
        return getQuobyteFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      public io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder getQuobyteOrBuilder() {
        if (quobyteBuilder_ != null) {
          return quobyteBuilder_.getMessageOrBuilder();
        } else {
          return quobyte_ == null
              ? io.kubernetes.client.proto.V1.QuobyteVolumeSource.getDefaultInstance()
              : quobyte_;
        }
      }
      /**
       *
       *
       * <pre>
       * Quobyte represents a Quobyte mount on the host that shares a pod's lifetime
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.QuobyteVolumeSource quobyte = 21;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.QuobyteVolumeSource,
              io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
              io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>
          getQuobyteFieldBuilder() {
        if (quobyteBuilder_ == null) {
          quobyteBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.QuobyteVolumeSource,
                  io.kubernetes.client.proto.V1.QuobyteVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.QuobyteVolumeSourceOrBuilder>(
                  getQuobyte(), getParentForChildren(), isClean());
          quobyte_ = null;
        }
        return quobyteBuilder_;
      }

      private io.kubernetes.client.proto.V1.AzureDiskVolumeSource azureDisk_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>
          azureDiskBuilder_;
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public boolean hasAzureDisk() {
        return ((bitField0_ & 0x00200000) == 0x00200000);
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource getAzureDisk() {
        if (azureDiskBuilder_ == null) {
          return azureDisk_ == null
              ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
              : azureDisk_;
        } else {
          return azureDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public Builder setAzureDisk(io.kubernetes.client.proto.V1.AzureDiskVolumeSource value) {
        if (azureDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          azureDisk_ = value;
          onChanged();
        } else {
          azureDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public Builder setAzureDisk(
          io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder builderForValue) {
        if (azureDiskBuilder_ == null) {
          azureDisk_ = builderForValue.build();
          onChanged();
        } else {
          azureDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public Builder mergeAzureDisk(io.kubernetes.client.proto.V1.AzureDiskVolumeSource value) {
        if (azureDiskBuilder_ == null) {
          if (((bitField0_ & 0x00200000) == 0x00200000)
              && azureDisk_ != null
              && azureDisk_
                  != io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()) {
            azureDisk_ =
                io.kubernetes.client.proto.V1.AzureDiskVolumeSource.newBuilder(azureDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            azureDisk_ = value;
          }
          onChanged();
        } else {
          azureDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00200000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public Builder clearAzureDisk() {
        if (azureDiskBuilder_ == null) {
          azureDisk_ = null;
          onChanged();
        } else {
          azureDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00200000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder getAzureDiskBuilder() {
        bitField0_ |= 0x00200000;
        onChanged();
        return getAzureDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      public io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder getAzureDiskOrBuilder() {
        if (azureDiskBuilder_ != null) {
          return azureDiskBuilder_.getMessageOrBuilder();
        } else {
          return azureDisk_ == null
              ? io.kubernetes.client.proto.V1.AzureDiskVolumeSource.getDefaultInstance()
              : azureDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * AzureDisk represents an Azure Data Disk mount on the host and bind mount to the pod.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.AzureDiskVolumeSource azureDisk = 22;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>
          getAzureDiskFieldBuilder() {
        if (azureDiskBuilder_ == null) {
          azureDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSource,
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.AzureDiskVolumeSourceOrBuilder>(
                  getAzureDisk(), getParentForChildren(), isClean());
          azureDisk_ = null;
        }
        return azureDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource photonPersistentDisk_ =
          null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>
          photonPersistentDiskBuilder_;
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public boolean hasPhotonPersistentDisk() {
        return ((bitField0_ & 0x00400000) == 0x00400000);
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
          getPhotonPersistentDisk() {
        if (photonPersistentDiskBuilder_ == null) {
          return photonPersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
              : photonPersistentDisk_;
        } else {
          return photonPersistentDiskBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public Builder setPhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource value) {
        if (photonPersistentDiskBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          photonPersistentDisk_ = value;
          onChanged();
        } else {
          photonPersistentDiskBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public Builder setPhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder builderForValue) {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = builderForValue.build();
          onChanged();
        } else {
          photonPersistentDiskBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public Builder mergePhotonPersistentDisk(
          io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource value) {
        if (photonPersistentDiskBuilder_ == null) {
          if (((bitField0_ & 0x00400000) == 0x00400000)
              && photonPersistentDisk_ != null
              && photonPersistentDisk_
                  != io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource
                      .getDefaultInstance()) {
            photonPersistentDisk_ =
                io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.newBuilder(
                        photonPersistentDisk_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            photonPersistentDisk_ = value;
          }
          onChanged();
        } else {
          photonPersistentDiskBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00400000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public Builder clearPhotonPersistentDisk() {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDisk_ = null;
          onChanged();
        } else {
          photonPersistentDiskBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00400000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder
          getPhotonPersistentDiskBuilder() {
        bitField0_ |= 0x00400000;
        onChanged();
        return getPhotonPersistentDiskFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      public io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder
          getPhotonPersistentDiskOrBuilder() {
        if (photonPersistentDiskBuilder_ != null) {
          return photonPersistentDiskBuilder_.getMessageOrBuilder();
        } else {
          return photonPersistentDisk_ == null
              ? io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.getDefaultInstance()
              : photonPersistentDisk_;
        }
      }
      /**
       *
       *
       * <pre>
       * PhotonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine
       * </pre>
       *
       * <code>
       * optional .k8s.io.api.core.v1.PhotonPersistentDiskVolumeSource photonPersistentDisk = 23;
       * </code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>
          getPhotonPersistentDiskFieldBuilder() {
        if (photonPersistentDiskBuilder_ == null) {
          photonPersistentDiskBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource,
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PhotonPersistentDiskVolumeSourceOrBuilder>(
                  getPhotonPersistentDisk(), getParentForChildren(), isClean());
          photonPersistentDisk_ = null;
        }
        return photonPersistentDiskBuilder_;
      }

      private io.kubernetes.client.proto.V1.ProjectedVolumeSource projected_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ProjectedVolumeSource,
              io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder>
          projectedBuilder_;
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public boolean hasProjected() {
        return ((bitField0_ & 0x00800000) == 0x00800000);
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public io.kubernetes.client.proto.V1.ProjectedVolumeSource getProjected() {
        if (projectedBuilder_ == null) {
          return projected_ == null
              ? io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance()
              : projected_;
        } else {
          return projectedBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public Builder setProjected(io.kubernetes.client.proto.V1.ProjectedVolumeSource value) {
        if (projectedBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          projected_ = value;
          onChanged();
        } else {
          projectedBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public Builder setProjected(
          io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder builderForValue) {
        if (projectedBuilder_ == null) {
          projected_ = builderForValue.build();
          onChanged();
        } else {
          projectedBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public Builder mergeProjected(io.kubernetes.client.proto.V1.ProjectedVolumeSource value) {
        if (projectedBuilder_ == null) {
          if (((bitField0_ & 0x00800000) == 0x00800000)
              && projected_ != null
              && projected_
                  != io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance()) {
            projected_ =
                io.kubernetes.client.proto.V1.ProjectedVolumeSource.newBuilder(projected_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            projected_ = value;
          }
          onChanged();
        } else {
          projectedBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00800000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public Builder clearProjected() {
        if (projectedBuilder_ == null) {
          projected_ = null;
          onChanged();
        } else {
          projectedBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00800000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder getProjectedBuilder() {
        bitField0_ |= 0x00800000;
        onChanged();
        return getProjectedFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      public io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder getProjectedOrBuilder() {
        if (projectedBuilder_ != null) {
          return projectedBuilder_.getMessageOrBuilder();
        } else {
          return projected_ == null
              ? io.kubernetes.client.proto.V1.ProjectedVolumeSource.getDefaultInstance()
              : projected_;
        }
      }
      /**
       *
       *
       * <pre>
       * Items for all in one resources secrets, configmaps, and downward API
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ProjectedVolumeSource projected = 26;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ProjectedVolumeSource,
              io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder>
          getProjectedFieldBuilder() {
        if (projectedBuilder_ == null) {
          projectedBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ProjectedVolumeSource,
                  io.kubernetes.client.proto.V1.ProjectedVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ProjectedVolumeSourceOrBuilder>(
                  getProjected(), getParentForChildren(), isClean());
          projected_ = null;
        }
        return projectedBuilder_;
      }

      private io.kubernetes.client.proto.V1.PortworxVolumeSource portworxVolume_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PortworxVolumeSource,
              io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>
          portworxVolumeBuilder_;
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public boolean hasPortworxVolume() {
        return ((bitField0_ & 0x01000000) == 0x01000000);
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSource getPortworxVolume() {
        if (portworxVolumeBuilder_ == null) {
          return portworxVolume_ == null
              ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
              : portworxVolume_;
        } else {
          return portworxVolumeBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public Builder setPortworxVolume(io.kubernetes.client.proto.V1.PortworxVolumeSource value) {
        if (portworxVolumeBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          portworxVolume_ = value;
          onChanged();
        } else {
          portworxVolumeBuilder_.setMessage(value);
        }
        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public Builder setPortworxVolume(
          io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder builderForValue) {
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = builderForValue.build();
          onChanged();
        } else {
          portworxVolumeBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public Builder mergePortworxVolume(io.kubernetes.client.proto.V1.PortworxVolumeSource value) {
        if (portworxVolumeBuilder_ == null) {
          if (((bitField0_ & 0x01000000) == 0x01000000)
              && portworxVolume_ != null
              && portworxVolume_
                  != io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()) {
            portworxVolume_ =
                io.kubernetes.client.proto.V1.PortworxVolumeSource.newBuilder(portworxVolume_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            portworxVolume_ = value;
          }
          onChanged();
        } else {
          portworxVolumeBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x01000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public Builder clearPortworxVolume() {
        if (portworxVolumeBuilder_ == null) {
          portworxVolume_ = null;
          onChanged();
        } else {
          portworxVolumeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x01000000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder getPortworxVolumeBuilder() {
        bitField0_ |= 0x01000000;
        onChanged();
        return getPortworxVolumeFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      public io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder
          getPortworxVolumeOrBuilder() {
        if (portworxVolumeBuilder_ != null) {
          return portworxVolumeBuilder_.getMessageOrBuilder();
        } else {
          return portworxVolume_ == null
              ? io.kubernetes.client.proto.V1.PortworxVolumeSource.getDefaultInstance()
              : portworxVolume_;
        }
      }
      /**
       *
       *
       * <pre>
       * PortworxVolume represents a portworx volume attached and mounted on kubelets host machine
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PortworxVolumeSource portworxVolume = 24;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PortworxVolumeSource,
              io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
              io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>
          getPortworxVolumeFieldBuilder() {
        if (portworxVolumeBuilder_ == null) {
          portworxVolumeBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PortworxVolumeSource,
                  io.kubernetes.client.proto.V1.PortworxVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.PortworxVolumeSourceOrBuilder>(
                  getPortworxVolume(), getParentForChildren(), isClean());
          portworxVolume_ = null;
        }
        return portworxVolumeBuilder_;
      }

      private io.kubernetes.client.proto.V1.ScaleIOVolumeSource scaleIO_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource,
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder>
          scaleIOBuilder_;
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public boolean hasScaleIO() {
        return ((bitField0_ & 0x02000000) == 0x02000000);
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource getScaleIO() {
        if (scaleIOBuilder_ == null) {
          return scaleIO_ == null
              ? io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance()
              : scaleIO_;
        } else {
          return scaleIOBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public Builder setScaleIO(io.kubernetes.client.proto.V1.ScaleIOVolumeSource value) {
        if (scaleIOBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          scaleIO_ = value;
          onChanged();
        } else {
          scaleIOBuilder_.setMessage(value);
        }
        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public Builder setScaleIO(
          io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder builderForValue) {
        if (scaleIOBuilder_ == null) {
          scaleIO_ = builderForValue.build();
          onChanged();
        } else {
          scaleIOBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public Builder mergeScaleIO(io.kubernetes.client.proto.V1.ScaleIOVolumeSource value) {
        if (scaleIOBuilder_ == null) {
          if (((bitField0_ & 0x02000000) == 0x02000000)
              && scaleIO_ != null
              && scaleIO_
                  != io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance()) {
            scaleIO_ =
                io.kubernetes.client.proto.V1.ScaleIOVolumeSource.newBuilder(scaleIO_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            scaleIO_ = value;
          }
          onChanged();
        } else {
          scaleIOBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x02000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public Builder clearScaleIO() {
        if (scaleIOBuilder_ == null) {
          scaleIO_ = null;
          onChanged();
        } else {
          scaleIOBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x02000000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder getScaleIOBuilder() {
        bitField0_ |= 0x02000000;
        onChanged();
        return getScaleIOFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      public io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder getScaleIOOrBuilder() {
        if (scaleIOBuilder_ != null) {
          return scaleIOBuilder_.getMessageOrBuilder();
        } else {
          return scaleIO_ == null
              ? io.kubernetes.client.proto.V1.ScaleIOVolumeSource.getDefaultInstance()
              : scaleIO_;
        }
      }
      /**
       *
       *
       * <pre>
       * ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.ScaleIOVolumeSource scaleIO = 25;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource,
              io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder,
              io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder>
          getScaleIOFieldBuilder() {
        if (scaleIOBuilder_ == null) {
          scaleIOBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.ScaleIOVolumeSource,
                  io.kubernetes.client.proto.V1.ScaleIOVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.ScaleIOVolumeSourceOrBuilder>(
                  getScaleIO(), getParentForChildren(), isClean());
          scaleIO_ = null;
        }
        return scaleIOBuilder_;
      }

      private io.kubernetes.client.proto.V1.StorageOSVolumeSource storageos_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.StorageOSVolumeSource,
              io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder>
          storageosBuilder_;
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public boolean hasStorageos() {
        return ((bitField0_ & 0x04000000) == 0x04000000);
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public io.kubernetes.client.proto.V1.StorageOSVolumeSource getStorageos() {
        if (storageosBuilder_ == null) {
          return storageos_ == null
              ? io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance()
              : storageos_;
        } else {
          return storageosBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public Builder setStorageos(io.kubernetes.client.proto.V1.StorageOSVolumeSource value) {
        if (storageosBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          storageos_ = value;
          onChanged();
        } else {
          storageosBuilder_.setMessage(value);
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public Builder setStorageos(
          io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder builderForValue) {
        if (storageosBuilder_ == null) {
          storageos_ = builderForValue.build();
          onChanged();
        } else {
          storageosBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public Builder mergeStorageos(io.kubernetes.client.proto.V1.StorageOSVolumeSource value) {
        if (storageosBuilder_ == null) {
          if (((bitField0_ & 0x04000000) == 0x04000000)
              && storageos_ != null
              && storageos_
                  != io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance()) {
            storageos_ =
                io.kubernetes.client.proto.V1.StorageOSVolumeSource.newBuilder(storageos_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            storageos_ = value;
          }
          onChanged();
        } else {
          storageosBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x04000000;
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public Builder clearStorageos() {
        if (storageosBuilder_ == null) {
          storageos_ = null;
          onChanged();
        } else {
          storageosBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x04000000);
        return this;
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder getStorageosBuilder() {
        bitField0_ |= 0x04000000;
        onChanged();
        return getStorageosFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      public io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder getStorageosOrBuilder() {
        if (storageosBuilder_ != null) {
          return storageosBuilder_.getMessageOrBuilder();
        } else {
          return storageos_ == null
              ? io.kubernetes.client.proto.V1.StorageOSVolumeSource.getDefaultInstance()
              : storageos_;
        }
      }
      /**
       *
       *
       * <pre>
       * StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.
       * +optional
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.StorageOSVolumeSource storageos = 27;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.StorageOSVolumeSource,
              io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder,
              io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder>
          getStorageosFieldBuilder() {
        if (storageosBuilder_ == null) {
          storageosBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.StorageOSVolumeSource,
                  io.kubernetes.client.proto.V1.StorageOSVolumeSource.Builder,
                  io.kubernetes.client.proto.V1.StorageOSVolumeSourceOrBuilder>(
                  getStorageos(), getParentForChildren(), isClean());
          storageos_ = null;
        }
        return storageosBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VolumeSource)
    private static final io.kubernetes.client.proto.V1.VolumeSource DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VolumeSource();
    }

    public static io.kubernetes.client.proto.V1.VolumeSource getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<VolumeSource>() {
          @java.lang.Override
          public VolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VolumeSource getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface VsphereVirtualDiskVolumeSourceOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    boolean hasVolumePath();
    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    java.lang.String getVolumePath();
    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    com.google.protobuf.ByteString getVolumePathBytes();

    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    boolean hasFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    java.lang.String getFsType();
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    com.google.protobuf.ByteString getFsTypeBytes();

    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    boolean hasStoragePolicyName();
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    java.lang.String getStoragePolicyName();
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    com.google.protobuf.ByteString getStoragePolicyNameBytes();

    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    boolean hasStoragePolicyID();
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    java.lang.String getStoragePolicyID();
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    com.google.protobuf.ByteString getStoragePolicyIDBytes();
  }
  /**
   *
   *
   * <pre>
   * Represents a vSphere volume resource.
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource}
   */
  public static final class VsphereVirtualDiskVolumeSource
      extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource)
      VsphereVirtualDiskVolumeSourceOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use VsphereVirtualDiskVolumeSource.newBuilder() to construct.
    private VsphereVirtualDiskVolumeSource(
        com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private VsphereVirtualDiskVolumeSource() {
      volumePath_ = "";
      fsType_ = "";
      storagePolicyName_ = "";
      storagePolicyID_ = "";
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private VsphereVirtualDiskVolumeSource(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                volumePath_ = bs;
                break;
              }
            case 18:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                fsType_ = bs;
                break;
              }
            case 26:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                storagePolicyName_ = bs;
                break;
              }
            case 34:
              {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000008;
                storagePolicyID_ = bs;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.class,
              io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder.class);
    }

    private int bitField0_;
    public static final int VOLUMEPATH_FIELD_NUMBER = 1;
    private volatile java.lang.Object volumePath_;
    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    public boolean hasVolumePath() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    public java.lang.String getVolumePath() {
      java.lang.Object ref = volumePath_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          volumePath_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Path that identifies vSphere volume vmdk
     * </pre>
     *
     * <code>optional string volumePath = 1;</code>
     */
    public com.google.protobuf.ByteString getVolumePathBytes() {
      java.lang.Object ref = volumePath_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        volumePath_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FSTYPE_FIELD_NUMBER = 2;
    private volatile java.lang.Object fsType_;
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public boolean hasFsType() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public java.lang.String getFsType() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          fsType_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Filesystem type to mount.
     * Must be a filesystem type supported by the host operating system.
     * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
     * +optional
     * </pre>
     *
     * <code>optional string fsType = 2;</code>
     */
    public com.google.protobuf.ByteString getFsTypeBytes() {
      java.lang.Object ref = fsType_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        fsType_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEPOLICYNAME_FIELD_NUMBER = 3;
    private volatile java.lang.Object storagePolicyName_;
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    public boolean hasStoragePolicyName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    public java.lang.String getStoragePolicyName() {
      java.lang.Object ref = storagePolicyName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storagePolicyName_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile name.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyName = 3;</code>
     */
    public com.google.protobuf.ByteString getStoragePolicyNameBytes() {
      java.lang.Object ref = storagePolicyName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storagePolicyName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int STORAGEPOLICYID_FIELD_NUMBER = 4;
    private volatile java.lang.Object storagePolicyID_;
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    public boolean hasStoragePolicyID() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    public java.lang.String getStoragePolicyID() {
      java.lang.Object ref = storagePolicyID_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          storagePolicyID_ = s;
        }
        return s;
      }
    }
    /**
     *
     *
     * <pre>
     * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
     * +optional
     * </pre>
     *
     * <code>optional string storagePolicyID = 4;</code>
     */
    public com.google.protobuf.ByteString getStoragePolicyIDBytes() {
      java.lang.Object ref = storagePolicyID_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        storagePolicyID_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 1, volumePath_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 3, storagePolicyName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        com.google.protobuf.GeneratedMessageV3.writeString(output, 4, storagePolicyID_);
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, volumePath_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, fsType_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, storagePolicyName_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, storagePolicyID_);
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource other =
          (io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource) obj;

      boolean result = true;
      result = result && (hasVolumePath() == other.hasVolumePath());
      if (hasVolumePath()) {
        result = result && getVolumePath().equals(other.getVolumePath());
      }
      result = result && (hasFsType() == other.hasFsType());
      if (hasFsType()) {
        result = result && getFsType().equals(other.getFsType());
      }
      result = result && (hasStoragePolicyName() == other.hasStoragePolicyName());
      if (hasStoragePolicyName()) {
        result = result && getStoragePolicyName().equals(other.getStoragePolicyName());
      }
      result = result && (hasStoragePolicyID() == other.hasStoragePolicyID());
      if (hasStoragePolicyID()) {
        result = result && getStoragePolicyID().equals(other.getStoragePolicyID());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasVolumePath()) {
        hash = (37 * hash) + VOLUMEPATH_FIELD_NUMBER;
        hash = (53 * hash) + getVolumePath().hashCode();
      }
      if (hasFsType()) {
        hash = (37 * hash) + FSTYPE_FIELD_NUMBER;
        hash = (53 * hash) + getFsType().hashCode();
      }
      if (hasStoragePolicyName()) {
        hash = (37 * hash) + STORAGEPOLICYNAME_FIELD_NUMBER;
        hash = (53 * hash) + getStoragePolicyName().hashCode();
      }
      if (hasStoragePolicyID()) {
        hash = (37 * hash) + STORAGEPOLICYID_FIELD_NUMBER;
        hash = (53 * hash) + getStoragePolicyID().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * Represents a vSphere volume resource.
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource)
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSourceOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.class,
                io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.Builder.class);
      }

      // Construct using
      // io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {}
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        volumePath_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        fsType_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        storagePolicyName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        storagePolicyID_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
          getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource build() {
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource buildPartial() {
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource result =
            new io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.volumePath_ = volumePath_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.fsType_ = fsType_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.storagePolicyName_ = storagePolicyName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.storagePolicyID_ = storagePolicyID_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource) {
          return mergeFrom((io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource other) {
        if (other
            == io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource.getDefaultInstance())
          return this;
        if (other.hasVolumePath()) {
          bitField0_ |= 0x00000001;
          volumePath_ = other.volumePath_;
          onChanged();
        }
        if (other.hasFsType()) {
          bitField0_ |= 0x00000002;
          fsType_ = other.fsType_;
          onChanged();
        }
        if (other.hasStoragePolicyName()) {
          bitField0_ |= 0x00000004;
          storagePolicyName_ = other.storagePolicyName_;
          onChanged();
        }
        if (other.hasStoragePolicyID()) {
          bitField0_ |= 0x00000008;
          storagePolicyID_ = other.storagePolicyID_;
          onChanged();
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource)
                  e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private java.lang.Object volumePath_ = "";
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public boolean hasVolumePath() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public java.lang.String getVolumePath() {
        java.lang.Object ref = volumePath_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            volumePath_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public com.google.protobuf.ByteString getVolumePathBytes() {
        java.lang.Object ref = volumePath_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          volumePath_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public Builder setVolumePath(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumePath_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public Builder clearVolumePath() {
        bitField0_ = (bitField0_ & ~0x00000001);
        volumePath_ = getDefaultInstance().getVolumePath();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Path that identifies vSphere volume vmdk
       * </pre>
       *
       * <code>optional string volumePath = 1;</code>
       */
      public Builder setVolumePathBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000001;
        volumePath_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object fsType_ = "";
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public boolean hasFsType() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public java.lang.String getFsType() {
        java.lang.Object ref = fsType_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            fsType_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public com.google.protobuf.ByteString getFsTypeBytes() {
        java.lang.Object ref = fsType_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          fsType_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsType(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder clearFsType() {
        bitField0_ = (bitField0_ & ~0x00000002);
        fsType_ = getDefaultInstance().getFsType();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Filesystem type to mount.
       * Must be a filesystem type supported by the host operating system.
       * Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.
       * +optional
       * </pre>
       *
       * <code>optional string fsType = 2;</code>
       */
      public Builder setFsTypeBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000002;
        fsType_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storagePolicyName_ = "";
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public boolean hasStoragePolicyName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public java.lang.String getStoragePolicyName() {
        java.lang.Object ref = storagePolicyName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storagePolicyName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public com.google.protobuf.ByteString getStoragePolicyNameBytes() {
        java.lang.Object ref = storagePolicyName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storagePolicyName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public Builder setStoragePolicyName(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        storagePolicyName_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public Builder clearStoragePolicyName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        storagePolicyName_ = getDefaultInstance().getStoragePolicyName();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile name.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyName = 3;</code>
       */
      public Builder setStoragePolicyNameBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000004;
        storagePolicyName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object storagePolicyID_ = "";
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public boolean hasStoragePolicyID() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public java.lang.String getStoragePolicyID() {
        java.lang.Object ref = storagePolicyID_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            storagePolicyID_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public com.google.protobuf.ByteString getStoragePolicyIDBytes() {
        java.lang.Object ref = storagePolicyID_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b =
              com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
          storagePolicyID_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public Builder setStoragePolicyID(java.lang.String value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        storagePolicyID_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public Builder clearStoragePolicyID() {
        bitField0_ = (bitField0_ & ~0x00000008);
        storagePolicyID_ = getDefaultInstance().getStoragePolicyID();
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.
       * +optional
       * </pre>
       *
       * <code>optional string storagePolicyID = 4;</code>
       */
      public Builder setStoragePolicyIDBytes(com.google.protobuf.ByteString value) {
        if (value == null) {
          throw new NullPointerException();
        }
        bitField0_ |= 0x00000008;
        storagePolicyID_ = value;
        onChanged();
        return this;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.VsphereVirtualDiskVolumeSource)
    private static final io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
        DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource();
    }

    public static io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
        getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<VsphereVirtualDiskVolumeSource> PARSER =
        new com.google.protobuf.AbstractParser<VsphereVirtualDiskVolumeSource>() {
          @java.lang.Override
          public VsphereVirtualDiskVolumeSource parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new VsphereVirtualDiskVolumeSource(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<VsphereVirtualDiskVolumeSource> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<VsphereVirtualDiskVolumeSource> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.VsphereVirtualDiskVolumeSource
        getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  public interface WeightedPodAffinityTermOrBuilder
      extends
      // @@protoc_insertion_point(interface_extends:k8s.io.api.core.v1.WeightedPodAffinityTerm)
      com.google.protobuf.MessageOrBuilder {

    /**
     *
     *
     * <pre>
     * weight associated with matching the corresponding podAffinityTerm,
     * in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    boolean hasWeight();
    /**
     *
     *
     * <pre>
     * weight associated with matching the corresponding podAffinityTerm,
     * in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    int getWeight();

    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    boolean hasPodAffinityTerm();
    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTerm getPodAffinityTerm();
    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder getPodAffinityTermOrBuilder();
  }
  /**
   *
   *
   * <pre>
   * The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
   * </pre>
   *
   * Protobuf type {@code k8s.io.api.core.v1.WeightedPodAffinityTerm}
   */
  public static final class WeightedPodAffinityTerm extends com.google.protobuf.GeneratedMessageV3
      implements
      // @@protoc_insertion_point(message_implements:k8s.io.api.core.v1.WeightedPodAffinityTerm)
      WeightedPodAffinityTermOrBuilder {
    private static final long serialVersionUID = 0L;
    // Use WeightedPodAffinityTerm.newBuilder() to construct.
    private WeightedPodAffinityTerm(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
      super(builder);
    }

    private WeightedPodAffinityTerm() {
      weight_ = 0;
    }

    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
      return this.unknownFields;
    }

    private WeightedPodAffinityTerm(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      this();
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 8:
              {
                bitField0_ |= 0x00000001;
                weight_ = input.readInt32();
                break;
              }
            case 18:
              {
                io.kubernetes.client.proto.V1.PodAffinityTerm.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  subBuilder = podAffinityTerm_.toBuilder();
                }
                podAffinityTerm_ =
                    input.readMessage(
                        io.kubernetes.client.proto.V1.PodAffinityTerm.PARSER, extensionRegistry);
                if (subBuilder != null) {
                  subBuilder.mergeFrom(podAffinityTerm_);
                  podAffinityTerm_ = subBuilder.buildPartial();
                }
                bitField0_ |= 0x00000002;
                break;
              }
            default:
              {
                if (!parseUnknownField(input, unknownFields, extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }

    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return io.kubernetes
          .client
          .proto
          .V1
          .internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return io.kubernetes.client.proto.V1
          .internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.class,
              io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder.class);
    }

    private int bitField0_;
    public static final int WEIGHT_FIELD_NUMBER = 1;
    private int weight_;
    /**
     *
     *
     * <pre>
     * weight associated with matching the corresponding podAffinityTerm,
     * in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    public boolean hasWeight() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     *
     *
     * <pre>
     * weight associated with matching the corresponding podAffinityTerm,
     * in the range 1-100.
     * </pre>
     *
     * <code>optional int32 weight = 1;</code>
     */
    public int getWeight() {
      return weight_;
    }

    public static final int PODAFFINITYTERM_FIELD_NUMBER = 2;
    private io.kubernetes.client.proto.V1.PodAffinityTerm podAffinityTerm_;
    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    public boolean hasPodAffinityTerm() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTerm getPodAffinityTerm() {
      return podAffinityTerm_ == null
          ? io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance()
          : podAffinityTerm_;
    }
    /**
     *
     *
     * <pre>
     * Required. A pod affinity term, associated with the corresponding weight.
     * </pre>
     *
     * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
     */
    public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder getPodAffinityTermOrBuilder() {
      return podAffinityTerm_ == null
          ? io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance()
          : podAffinityTerm_;
    }

    private byte memoizedIsInitialized = -1;

    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, weight_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, getPodAffinityTerm());
      }
      unknownFields.writeTo(output);
    }

    @java.lang.Override
    public int getSerializedSize() {
      int size = memoizedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream.computeInt32Size(1, weight_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream.computeMessageSize(2, getPodAffinityTerm());
      }
      size += unknownFields.getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
        return true;
      }
      if (!(obj instanceof io.kubernetes.client.proto.V1.WeightedPodAffinityTerm)) {
        return super.equals(obj);
      }
      io.kubernetes.client.proto.V1.WeightedPodAffinityTerm other =
          (io.kubernetes.client.proto.V1.WeightedPodAffinityTerm) obj;

      boolean result = true;
      result = result && (hasWeight() == other.hasWeight());
      if (hasWeight()) {
        result = result && (getWeight() == other.getWeight());
      }
      result = result && (hasPodAffinityTerm() == other.hasPodAffinityTerm());
      if (hasPodAffinityTerm()) {
        result = result && getPodAffinityTerm().equals(other.getPodAffinityTerm());
      }
      result = result && unknownFields.equals(other.unknownFields);
      return result;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasWeight()) {
        hash = (37 * hash) + WEIGHT_FIELD_NUMBER;
        hash = (53 * hash) + getWeight();
      }
      if (hasPodAffinityTerm()) {
        hash = (37 * hash) + PODAFFINITYTERM_FIELD_NUMBER;
        hash = (53 * hash) + getPodAffinityTerm().hashCode();
      }
      hash = (29 * hash) + unknownFields.hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseDelimitedFrom(
        java.io.InputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseDelimitedFrom(
        java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
          PARSER, input, extensionRegistry);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        com.google.protobuf.CodedInputStream input) throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
          PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() {
      return newBuilder();
    }

    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }

    public static Builder newBuilder(
        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }

    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     *
     *
     * <pre>
     * The weights of all of the matched WeightedPodAffinityTerm fields are added per-node to find the most preferred node(s)
     * </pre>
     *
     * Protobuf type {@code k8s.io.api.core.v1.WeightedPodAffinityTerm}
     */
    public static final class Builder
        extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
        implements
        // @@protoc_insertion_point(builder_implements:k8s.io.api.core.v1.WeightedPodAffinityTerm)
        io.kubernetes.client.proto.V1.WeightedPodAffinityTermOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return io.kubernetes.client.proto.V1
            .internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.class,
                io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.Builder.class);
      }

      // Construct using io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }

      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders) {
          getPodAffinityTermFieldBuilder();
        }
      }

      @java.lang.Override
      public Builder clear() {
        super.clear();
        weight_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (podAffinityTermBuilder_ == null) {
          podAffinityTerm_ = null;
        } else {
          podAffinityTermBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
        return io.kubernetes
            .client
            .proto
            .V1
            .internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm getDefaultInstanceForType() {
        return io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance();
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm build() {
        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm buildPartial() {
        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm result =
            new io.kubernetes.client.proto.V1.WeightedPodAffinityTerm(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.weight_ = weight_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (podAffinityTermBuilder_ == null) {
          result.podAffinityTerm_ = podAffinityTerm_;
        } else {
          result.podAffinityTerm_ = podAffinityTermBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      @java.lang.Override
      public Builder clone() {
        return (Builder) super.clone();
      }

      @java.lang.Override
      public Builder setField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.setField(field, value);
      }

      @java.lang.Override
      public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
        return (Builder) super.clearField(field);
      }

      @java.lang.Override
      public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
        return (Builder) super.clearOneof(oneof);
      }

      @java.lang.Override
      public Builder setRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field,
          int index,
          java.lang.Object value) {
        return (Builder) super.setRepeatedField(field, index, value);
      }

      @java.lang.Override
      public Builder addRepeatedField(
          com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
        return (Builder) super.addRepeatedField(field, value);
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof io.kubernetes.client.proto.V1.WeightedPodAffinityTerm) {
          return mergeFrom((io.kubernetes.client.proto.V1.WeightedPodAffinityTerm) other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(io.kubernetes.client.proto.V1.WeightedPodAffinityTerm other) {
        if (other == io.kubernetes.client.proto.V1.WeightedPodAffinityTerm.getDefaultInstance())
          return this;
        if (other.hasWeight()) {
          setWeight(other.getWeight());
        }
        if (other.hasPodAffinityTerm()) {
          mergePodAffinityTerm(other.getPodAffinityTerm());
        }
        this.mergeUnknownFields(other.unknownFields);
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        io.kubernetes.client.proto.V1.WeightedPodAffinityTerm parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage =
              (io.kubernetes.client.proto.V1.WeightedPodAffinityTerm) e.getUnfinishedMessage();
          throw e.unwrapIOException();
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      private int bitField0_;

      private int weight_;
      /**
       *
       *
       * <pre>
       * weight associated with matching the corresponding podAffinityTerm,
       * in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public boolean hasWeight() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       *
       *
       * <pre>
       * weight associated with matching the corresponding podAffinityTerm,
       * in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public int getWeight() {
        return weight_;
      }
      /**
       *
       *
       * <pre>
       * weight associated with matching the corresponding podAffinityTerm,
       * in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public Builder setWeight(int value) {
        bitField0_ |= 0x00000001;
        weight_ = value;
        onChanged();
        return this;
      }
      /**
       *
       *
       * <pre>
       * weight associated with matching the corresponding podAffinityTerm,
       * in the range 1-100.
       * </pre>
       *
       * <code>optional int32 weight = 1;</code>
       */
      public Builder clearWeight() {
        bitField0_ = (bitField0_ & ~0x00000001);
        weight_ = 0;
        onChanged();
        return this;
      }

      private io.kubernetes.client.proto.V1.PodAffinityTerm podAffinityTerm_ = null;
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          podAffinityTermBuilder_;
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public boolean hasPodAffinityTerm() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm getPodAffinityTerm() {
        if (podAffinityTermBuilder_ == null) {
          return podAffinityTerm_ == null
              ? io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance()
              : podAffinityTerm_;
        } else {
          return podAffinityTermBuilder_.getMessage();
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public Builder setPodAffinityTerm(io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (podAffinityTermBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          podAffinityTerm_ = value;
          onChanged();
        } else {
          podAffinityTermBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public Builder setPodAffinityTerm(
          io.kubernetes.client.proto.V1.PodAffinityTerm.Builder builderForValue) {
        if (podAffinityTermBuilder_ == null) {
          podAffinityTerm_ = builderForValue.build();
          onChanged();
        } else {
          podAffinityTermBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public Builder mergePodAffinityTerm(io.kubernetes.client.proto.V1.PodAffinityTerm value) {
        if (podAffinityTermBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)
              && podAffinityTerm_ != null
              && podAffinityTerm_
                  != io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance()) {
            podAffinityTerm_ =
                io.kubernetes.client.proto.V1.PodAffinityTerm.newBuilder(podAffinityTerm_)
                    .mergeFrom(value)
                    .buildPartial();
          } else {
            podAffinityTerm_ = value;
          }
          onChanged();
        } else {
          podAffinityTermBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public Builder clearPodAffinityTerm() {
        if (podAffinityTermBuilder_ == null) {
          podAffinityTerm_ = null;
          onChanged();
        } else {
          podAffinityTermBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTerm.Builder getPodAffinityTermBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPodAffinityTermFieldBuilder().getBuilder();
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      public io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder getPodAffinityTermOrBuilder() {
        if (podAffinityTermBuilder_ != null) {
          return podAffinityTermBuilder_.getMessageOrBuilder();
        } else {
          return podAffinityTerm_ == null
              ? io.kubernetes.client.proto.V1.PodAffinityTerm.getDefaultInstance()
              : podAffinityTerm_;
        }
      }
      /**
       *
       *
       * <pre>
       * Required. A pod affinity term, associated with the corresponding weight.
       * </pre>
       *
       * <code>optional .k8s.io.api.core.v1.PodAffinityTerm podAffinityTerm = 2;</code>
       */
      private com.google.protobuf.SingleFieldBuilderV3<
              io.kubernetes.client.proto.V1.PodAffinityTerm,
              io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
              io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>
          getPodAffinityTermFieldBuilder() {
        if (podAffinityTermBuilder_ == null) {
          podAffinityTermBuilder_ =
              new com.google.protobuf.SingleFieldBuilderV3<
                  io.kubernetes.client.proto.V1.PodAffinityTerm,
                  io.kubernetes.client.proto.V1.PodAffinityTerm.Builder,
                  io.kubernetes.client.proto.V1.PodAffinityTermOrBuilder>(
                  getPodAffinityTerm(), getParentForChildren(), isClean());
          podAffinityTerm_ = null;
        }
        return podAffinityTermBuilder_;
      }

      @java.lang.Override
      public final Builder setUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.setUnknownFields(unknownFields);
      }

      @java.lang.Override
      public final Builder mergeUnknownFields(
          final com.google.protobuf.UnknownFieldSet unknownFields) {
        return super.mergeUnknownFields(unknownFields);
      }

      // @@protoc_insertion_point(builder_scope:k8s.io.api.core.v1.WeightedPodAffinityTerm)
    }

    // @@protoc_insertion_point(class_scope:k8s.io.api.core.v1.WeightedPodAffinityTerm)
    private static final io.kubernetes.client.proto.V1.WeightedPodAffinityTerm DEFAULT_INSTANCE;

    static {
      DEFAULT_INSTANCE = new io.kubernetes.client.proto.V1.WeightedPodAffinityTerm();
    }

    public static io.kubernetes.client.proto.V1.WeightedPodAffinityTerm getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

    @java.lang.Deprecated
    public static final com.google.protobuf.Parser<WeightedPodAffinityTerm> PARSER =
        new com.google.protobuf.AbstractParser<WeightedPodAffinityTerm>() {
          @java.lang.Override
          public WeightedPodAffinityTerm parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new WeightedPodAffinityTerm(input, extensionRegistry);
          }
        };

    public static com.google.protobuf.Parser<WeightedPodAffinityTerm> parser() {
      return PARSER;
    }

    @java.lang.Override
    public com.google.protobuf.Parser<WeightedPodAffinityTerm> getParserForType() {
      return PARSER;
    }

    @java.lang.Override
    public io.kubernetes.client.proto.V1.WeightedPodAffinityTerm getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }
  }

  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Affinity_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Affinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AttachedVolume_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AvoidPods_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AvoidPods_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Binding_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Binding_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Capabilities_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Capabilities_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CephFSVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_CinderVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ClientIPConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ComponentCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ComponentStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ComponentStatusList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMap_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMap_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapProjection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Container_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Container_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerImage_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerImage_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerPort_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerPort_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerState_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerState_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerStateRunning_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerStateTerminated_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerStateWaiting_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ContainerStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_DaemonEndpoint_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_DownwardAPIProjection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EndpointAddress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EndpointPort_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EndpointPort_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EndpointSubset_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Endpoints_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Endpoints_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EndpointsList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EndpointsList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EnvFromSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EnvVar_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EnvVar_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EnvVarSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Event_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Event_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EventList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EventList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EventSeries_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EventSeries_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_EventSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_EventSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ExecAction_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ExecAction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FCVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FlexVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_FlockerVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_HTTPGetAction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_HTTPHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Handler_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Handler_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_HostAlias_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_HostAlias_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_HostPathVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_KeyToPath_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_KeyToPath_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Lifecycle_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Lifecycle_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRange_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRange_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LimitRangeSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_List_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_List_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LoadBalancerIngress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LoadBalancerStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LocalObjectReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_LocalVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NFSVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Namespace_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Namespace_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NamespaceList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NamespaceList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NamespaceSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NamespaceStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Node_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Node_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeAddress_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeAddress_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeAffinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeConfigSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeConfigStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeProxyOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeResources_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeResources_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeSelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeSelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeSelectorTerm_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_NodeSystemInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ObjectFieldSelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ObjectReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ObjectReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolume_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Pod_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Pod_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodAffinity_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodAffinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodAffinityTerm_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodAntiAffinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodAttachOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodDNSConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodDNSConfigOption_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodExecOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodLogOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodPortForwardOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodProxyOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodReadinessGate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodSecurityContext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodSignature_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodSignature_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodStatusResult_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodTemplate_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodTemplate_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodTemplateList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PodTemplateSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PortworxVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Preconditions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Preconditions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Probe_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Probe_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_RBDVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_RangeAllocation_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationController_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationController_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationControllerList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceFieldSelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuota_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceRequirements_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SELinuxOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ScopeSelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Secret_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Secret_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Secret_DataEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Secret_DataEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretEnvSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretKeySelector_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretProjection_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretProjection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecretVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SecurityContext_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SecurityContext_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SerializedReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SerializedReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Service_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Service_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceAccount_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceAccountList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceList_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceList_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServicePort_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServicePort_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceProxyOptions_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceSpec_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_ServiceStatus_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_SessionAffinityConfig_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Sysctl_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Sysctl_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_TCPSocketAction_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Taint_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Taint_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Toleration_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Toleration_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_TopologySelectorTerm_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_Volume_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_Volume_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VolumeDevice_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VolumeMount_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VolumeMount_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VolumeProjection_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
      internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor;
  private static final com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {
    return descriptor;
  }

  private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

  static {
    java.lang.String[] descriptorData = {
      "\n\"k8s.io/api/core/v1/generated.proto\022\022k8"
          + "s.io.api.core.v1\0324k8s.io/apimachinery/pk"
          + "g/api/resource/generated.proto\0324k8s.io/a"
          + "pimachinery/pkg/apis/meta/v1/generated.p"
          + "roto\032/k8s.io/apimachinery/pkg/runtime/ge"
          + "nerated.proto\0326k8s.io/apimachinery/pkg/r"
          + "untime/schema/generated.proto\0323k8s.io/ap"
          + "imachinery/pkg/util/intstr/generated.pro"
          + "to\"i\n AWSElasticBlockStoreVolumeSource\022\020"
          + "\n\010volumeID\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\022\021\n\tpart"
          + "ition\030\003 \001(\005\022\020\n\010readOnly\030\004 \001(\010\"\266\001\n\010Affini"
          + "ty\0226\n\014nodeAffinity\030\001 \001(\0132 .k8s.io.api.co"
          + "re.v1.NodeAffinity\0224\n\013podAffinity\030\002 \001(\0132"
          + "\037.k8s.io.api.core.v1.PodAffinity\022<\n\017podA"
          + "ntiAffinity\030\003 \001(\0132#.k8s.io.api.core.v1.P"
          + "odAntiAffinity\"2\n\016AttachedVolume\022\014\n\004name"
          + "\030\001 \001(\t\022\022\n\ndevicePath\030\002 \001(\t\"N\n\tAvoidPods\022"
          + "A\n\017preferAvoidPods\030\001 \003(\0132(.k8s.io.api.co"
          + "re.v1.PreferAvoidPodsEntry\"\177\n\025AzureDiskV"
          + "olumeSource\022\020\n\010diskName\030\001 \001(\t\022\017\n\007diskURI"
          + "\030\002 \001(\t\022\023\n\013cachingMode\030\003 \001(\t\022\016\n\006fsType\030\004 "
          + "\001(\t\022\020\n\010readOnly\030\005 \001(\010\022\014\n\004kind\030\006 \001(\t\"s\n\037A"
          + "zureFilePersistentVolumeSource\022\022\n\nsecret"
          + "Name\030\001 \001(\t\022\021\n\tshareName\030\002 \001(\t\022\020\n\010readOnl"
          + "y\030\003 \001(\010\022\027\n\017secretNamespace\030\004 \001(\t\"P\n\025Azur"
          + "eFileVolumeSource\022\022\n\nsecretName\030\001 \001(\t\022\021\n"
          + "\tshareName\030\002 \001(\t\022\020\n\010readOnly\030\003 \001(\010\"\202\001\n\007B"
          + "inding\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimac"
          + "hinery.pkg.apis.meta.v1.ObjectMeta\0223\n\006ta"
          + "rget\030\002 \001(\0132#.k8s.io.api.core.v1.ObjectRe"
          + "ference\"\310\003\n\031CSIPersistentVolumeSource\022\016\n"
          + "\006driver\030\001 \001(\t\022\024\n\014volumeHandle\030\002 \001(\t\022\020\n\010r"
          + "eadOnly\030\003 \001(\010\022\016\n\006fsType\030\004 \001(\t\022]\n\020volumeA"
          + "ttributes\030\005 \003(\0132C.k8s.io.api.core.v1.CSI"
          + "PersistentVolumeSource.VolumeAttributesE"
          + "ntry\022G\n\032controllerPublishSecretRef\030\006 \001(\013"
          + "2#.k8s.io.api.core.v1.SecretReference\022?\n"
          + "\022nodeStageSecretRef\030\007 \001(\0132#.k8s.io.api.c"
          + "ore.v1.SecretReference\022A\n\024nodePublishSec"
          + "retRef\030\010 \001(\0132#.k8s.io.api.core.v1.Secret"
          + "Reference\0327\n\025VolumeAttributesEntry\022\013\n\003ke"
          + "y\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\")\n\014Capabiliti"
          + "es\022\013\n\003add\030\001 \003(\t\022\014\n\004drop\030\002 \003(\t\"\252\001\n\034CephFS"
          + "PersistentVolumeSource\022\020\n\010monitors\030\001 \003(\t"
          + "\022\014\n\004path\030\002 \001(\t\022\014\n\004user\030\003 \001(\t\022\022\n\nsecretFi"
          + "le\030\004 \001(\t\0226\n\tsecretRef\030\005 \001(\0132#.k8s.io.api"
          + ".core.v1.SecretReference\022\020\n\010readOnly\030\006 \001"
          + "(\010\"\245\001\n\022CephFSVolumeSource\022\020\n\010monitors\030\001 "
          + "\003(\t\022\014\n\004path\030\002 \001(\t\022\014\n\004user\030\003 \001(\t\022\022\n\nsecre"
          + "tFile\030\004 \001(\t\022;\n\tsecretRef\030\005 \001(\0132(.k8s.io."
          + "api.core.v1.LocalObjectReference\022\020\n\010read"
          + "Only\030\006 \001(\010\"\212\001\n\034CinderPersistentVolumeSou"
          + "rce\022\020\n\010volumeID\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\022\020\n"
          + "\010readOnly\030\003 \001(\010\0226\n\tsecretRef\030\004 \001(\0132#.k8s"
          + ".io.api.core.v1.SecretReference\"\205\001\n\022Cind"
          + "erVolumeSource\022\020\n\010volumeID\030\001 \001(\t\022\016\n\006fsTy"
          + "pe\030\002 \001(\t\022\020\n\010readOnly\030\003 \001(\010\022;\n\tsecretRef\030"
          + "\004 \001(\0132(.k8s.io.api.core.v1.LocalObjectRe"
          + "ference\"(\n\016ClientIPConfig\022\026\n\016timeoutSeco"
          + "nds\030\001 \001(\005\"R\n\022ComponentCondition\022\014\n\004type\030"
          + "\001 \001(\t\022\016\n\006status\030\002 \001(\t\022\017\n\007message\030\003 \001(\t\022\r"
          + "\n\005error\030\004 \001(\t\"\221\001\n\017ComponentStatus\022B\n\010met"
          + "adata\030\001 \001(\01320.k8s.io.apimachinery.pkg.ap"
          + "is.meta.v1.ObjectMeta\022:\n\nconditions\030\002 \003("
          + "\0132&.k8s.io.api.core.v1.ComponentConditio"
          + "n\"\213\001\n\023ComponentStatusList\022@\n\010metadata\030\001 "
          + "\001(\0132..k8s.io.apimachinery.pkg.apis.meta."
          + "v1.ListMeta\0222\n\005items\030\002 \003(\0132#.k8s.io.api."
          + "core.v1.ComponentStatus\"\251\002\n\tConfigMap\022B\n"
          + "\010metadata\030\001 \001(\01320.k8s.io.apimachinery.pk"
          + "g.apis.meta.v1.ObjectMeta\0225\n\004data\030\002 \003(\0132"
          + "\'.k8s.io.api.core.v1.ConfigMap.DataEntry"
          + "\022A\n\nbinaryData\030\003 \003(\0132-.k8s.io.api.core.v"
          + "1.ConfigMap.BinaryDataEntry\032+\n\tDataEntry"
          + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\0321\n\017Bina"
          + "ryDataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:"
          + "\0028\001\"n\n\022ConfigMapEnvSource\022F\n\024localObject"
          + "Reference\030\001 \001(\0132(.k8s.io.api.core.v1.Loc"
          + "alObjectReference\022\020\n\010optional\030\002 \001(\010\"}\n\024C"
          + "onfigMapKeySelector\022F\n\024localObjectRefere"
          + "nce\030\001 \001(\0132(.k8s.io.api.core.v1.LocalObje"
          + "ctReference\022\013\n\003key\030\002 \001(\t\022\020\n\010optional\030\003 \001"
          + "(\010\"\177\n\rConfigMapList\022@\n\010metadata\030\001 \001(\0132.."
          + "k8s.io.apimachinery.pkg.apis.meta.v1.Lis"
          + "tMeta\022,\n\005items\030\002 \003(\0132\035.k8s.io.api.core.v"
          + "1.ConfigMap\"|\n\031ConfigMapNodeConfigSource"
          + "\022\021\n\tnamespace\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\013\n\003uid"
          + "\030\003 \001(\t\022\027\n\017resourceVersion\030\004 \001(\t\022\030\n\020kubel"
          + "etConfigKey\030\005 \001(\t\"\235\001\n\023ConfigMapProjectio"
          + "n\022F\n\024localObjectReference\030\001 \001(\0132(.k8s.io"
          + ".api.core.v1.LocalObjectReference\022,\n\005ite"
          + "ms\030\002 \003(\0132\035.k8s.io.api.core.v1.KeyToPath\022"
          + "\020\n\010optional\030\004 \001(\010\"\264\001\n\025ConfigMapVolumeSou"
          + "rce\022F\n\024localObjectReference\030\001 \001(\0132(.k8s."
          + "io.api.core.v1.LocalObjectReference\022,\n\005i"
          + "tems\030\002 \003(\0132\035.k8s.io.api.core.v1.KeyToPat"
          + "h\022\023\n\013defaultMode\030\003 \001(\005\022\020\n\010optional\030\004 \001(\010"
          + "\"\366\005\n\tContainer\022\014\n\004name\030\001 \001(\t\022\r\n\005image\030\002 "
          + "\001(\t\022\017\n\007command\030\003 \003(\t\022\014\n\004args\030\004 \003(\t\022\022\n\nwo"
          + "rkingDir\030\005 \001(\t\0220\n\005ports\030\006 \003(\0132!.k8s.io.a"
          + "pi.core.v1.ContainerPort\0222\n\007envFrom\030\023 \003("
          + "\0132!.k8s.io.api.core.v1.EnvFromSource\022\'\n\003"
          + "env\030\007 \003(\0132\032.k8s.io.api.core.v1.EnvVar\022;\n"
          + "\tresources\030\010 \001(\0132(.k8s.io.api.core.v1.Re"
          + "sourceRequirements\0225\n\014volumeMounts\030\t \003(\013"
          + "2\037.k8s.io.api.core.v1.VolumeMount\0227\n\rvol"
          + "umeDevices\030\025 \003(\0132 .k8s.io.api.core.v1.Vo"
          + "lumeDevice\0220\n\rlivenessProbe\030\n \001(\0132\031.k8s."
          + "io.api.core.v1.Probe\0221\n\016readinessProbe\030\013"
          + " \001(\0132\031.k8s.io.api.core.v1.Probe\0220\n\tlifec"
          + "ycle\030\014 \001(\0132\035.k8s.io.api.core.v1.Lifecycl"
          + "e\022\036\n\026terminationMessagePath\030\r \001(\t\022 \n\030ter"
          + "minationMessagePolicy\030\024 \001(\t\022\027\n\017imagePull"
          + "Policy\030\016 \001(\t\022<\n\017securityContext\030\017 \001(\0132#."
          + "k8s.io.api.core.v1.SecurityContext\022\r\n\005st"
          + "din\030\020 \001(\010\022\021\n\tstdinOnce\030\021 \001(\010\022\013\n\003tty\030\022 \001("
          + "\010\"2\n\016ContainerImage\022\r\n\005names\030\001 \003(\t\022\021\n\tsi"
          + "zeBytes\030\002 \001(\003\"h\n\rContainerPort\022\014\n\004name\030\001"
          + " \001(\t\022\020\n\010hostPort\030\002 \001(\005\022\025\n\rcontainerPort\030"
          + "\003 \001(\005\022\020\n\010protocol\030\004 \001(\t\022\016\n\006hostIP\030\005 \001(\t\""
          + "\312\001\n\016ContainerState\022:\n\007waiting\030\001 \001(\0132).k8"
          + "s.io.api.core.v1.ContainerStateWaiting\022:"
          + "\n\007running\030\002 \001(\0132).k8s.io.api.core.v1.Con"
          + "tainerStateRunning\022@\n\nterminated\030\003 \001(\0132,"
          + ".k8s.io.api.core.v1.ContainerStateTermin"
          + "ated\"V\n\025ContainerStateRunning\022=\n\tstarted"
          + "At\030\001 \001(\0132*.k8s.io.apimachinery.pkg.apis."
          + "meta.v1.Time\"\361\001\n\030ContainerStateTerminate"
          + "d\022\020\n\010exitCode\030\001 \001(\005\022\016\n\006signal\030\002 \001(\005\022\016\n\006r"
          + "eason\030\003 \001(\t\022\017\n\007message\030\004 \001(\t\022=\n\tstartedA"
          + "t\030\005 \001(\0132*.k8s.io.apimachinery.pkg.apis.m"
          + "eta.v1.Time\022>\n\nfinishedAt\030\006 \001(\0132*.k8s.io"
          + ".apimachinery.pkg.apis.meta.v1.Time\022\023\n\013c"
          + "ontainerID\030\007 \001(\t\"8\n\025ContainerStateWaitin"
          + "g\022\016\n\006reason\030\001 \001(\t\022\017\n\007message\030\002 \001(\t\"\343\001\n\017C"
          + "ontainerStatus\022\014\n\004name\030\001 \001(\t\0221\n\005state\030\002 "
          + "\001(\0132\".k8s.io.api.core.v1.ContainerState\022"
          + "5\n\tlastState\030\003 \001(\0132\".k8s.io.api.core.v1."
          + "ContainerState\022\r\n\005ready\030\004 \001(\010\022\024\n\014restart"
          + "Count\030\005 \001(\005\022\r\n\005image\030\006 \001(\t\022\017\n\007imageID\030\007 "
          + "\001(\t\022\023\n\013containerID\030\010 \001(\t\"\036\n\016DaemonEndpoi"
          + "nt\022\014\n\004Port\030\001 \001(\005\"Q\n\025DownwardAPIProjectio"
          + "n\0228\n\005items\030\001 \003(\0132).k8s.io.api.core.v1.Do"
          + "wnwardAPIVolumeFile\"\263\001\n\025DownwardAPIVolum"
          + "eFile\022\014\n\004path\030\001 \001(\t\0229\n\010fieldRef\030\002 \001(\0132\'."
          + "k8s.io.api.core.v1.ObjectFieldSelector\022C"
          + "\n\020resourceFieldRef\030\003 \001(\0132).k8s.io.api.co"
          + "re.v1.ResourceFieldSelector\022\014\n\004mode\030\004 \001("
          + "\005\"h\n\027DownwardAPIVolumeSource\0228\n\005items\030\001 "
          + "\003(\0132).k8s.io.api.core.v1.DownwardAPIVolu"
          + "meFile\022\023\n\013defaultMode\030\002 \001(\005\"i\n\024EmptyDirV"
          + "olumeSource\022\016\n\006medium\030\001 \001(\t\022A\n\tsizeLimit"
          + "\030\002 \001(\0132..k8s.io.apimachinery.pkg.api.res"
          + "ource.Quantity\"y\n\017EndpointAddress\022\n\n\002ip\030"
          + "\001 \001(\t\022\020\n\010hostname\030\003 \001(\t\022\020\n\010nodeName\030\004 \001("
          + "\t\0226\n\ttargetRef\030\002 \001(\0132#.k8s.io.api.core.v"
          + "1.ObjectReference\"<\n\014EndpointPort\022\014\n\004nam"
          + "e\030\001 \001(\t\022\014\n\004port\030\002 \001(\005\022\020\n\010protocol\030\003 \001(\t\""
          + "\271\001\n\016EndpointSubset\0226\n\taddresses\030\001 \003(\0132#."
          + "k8s.io.api.core.v1.EndpointAddress\022>\n\021no"
          + "tReadyAddresses\030\002 \003(\0132#.k8s.io.api.core."
          + "v1.EndpointAddress\022/\n\005ports\030\003 \003(\0132 .k8s."
          + "io.api.core.v1.EndpointPort\"\204\001\n\tEndpoint"
          + "s\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimachiner"
          + "y.pkg.apis.meta.v1.ObjectMeta\0223\n\007subsets"
          + "\030\002 \003(\0132\".k8s.io.api.core.v1.EndpointSubs"
          + "et\"\177\n\rEndpointsList\022@\n\010metadata\030\001 \001(\0132.."
          + "k8s.io.apimachinery.pkg.apis.meta.v1.Lis"
          + "tMeta\022,\n\005items\030\002 \003(\0132\035.k8s.io.api.core.v"
          + "1.Endpoints\"\225\001\n\rEnvFromSource\022\016\n\006prefix\030"
          + "\001 \001(\t\022<\n\014configMapRef\030\002 \001(\0132&.k8s.io.api"
          + ".core.v1.ConfigMapEnvSource\0226\n\tsecretRef"
          + "\030\003 \001(\0132#.k8s.io.api.core.v1.SecretEnvSou"
          + "rce\"Z\n\006EnvVar\022\014\n\004name\030\001 \001(\t\022\r\n\005value\030\002 \001"
          + "(\t\0223\n\tvalueFrom\030\003 \001(\0132 .k8s.io.api.core."
          + "v1.EnvVarSource\"\216\002\n\014EnvVarSource\0229\n\010fiel"
          + "dRef\030\001 \001(\0132\'.k8s.io.api.core.v1.ObjectFi"
          + "eldSelector\022C\n\020resourceFieldRef\030\002 \001(\0132)."
          + "k8s.io.api.core.v1.ResourceFieldSelector"
          + "\022A\n\017configMapKeyRef\030\003 \001(\0132(.k8s.io.api.c"
          + "ore.v1.ConfigMapKeySelector\022;\n\014secretKey"
          + "Ref\030\004 \001(\0132%.k8s.io.api.core.v1.SecretKey"
          + "Selector\"\360\004\n\005Event\022B\n\010metadata\030\001 \001(\01320.k"
          + "8s.io.apimachinery.pkg.apis.meta.v1.Obje"
          + "ctMeta\022;\n\016involvedObject\030\002 \001(\0132#.k8s.io."
          + "api.core.v1.ObjectReference\022\016\n\006reason\030\003 "
          + "\001(\t\022\017\n\007message\030\004 \001(\t\022/\n\006source\030\005 \001(\0132\037.k"
          + "8s.io.api.core.v1.EventSource\022B\n\016firstTi"
          + "mestamp\030\006 \001(\0132*.k8s.io.apimachinery.pkg."
          + "apis.meta.v1.Time\022A\n\rlastTimestamp\030\007 \001(\013"
          + "2*.k8s.io.apimachinery.pkg.apis.meta.v1."
          + "Time\022\r\n\005count\030\010 \001(\005\022\014\n\004type\030\t \001(\t\022B\n\teve"
          + "ntTime\030\n \001(\0132/.k8s.io.apimachinery.pkg.a"
          + "pis.meta.v1.MicroTime\022/\n\006series\030\013 \001(\0132\037."
          + "k8s.io.api.core.v1.EventSeries\022\016\n\006action"
          + "\030\014 \001(\t\0224\n\007related\030\r \001(\0132#.k8s.io.api.cor"
          + "e.v1.ObjectReference\022\032\n\022reportingCompone"
          + "nt\030\016 \001(\t\022\031\n\021reportingInstance\030\017 \001(\t\"w\n\tE"
          + "ventList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apim"
          + "achinery.pkg.apis.meta.v1.ListMeta\022(\n\005it"
          + "ems\030\002 \003(\0132\031.k8s.io.api.core.v1.Event\"v\n\013"
          + "EventSeries\022\r\n\005count\030\001 \001(\005\022I\n\020lastObserv"
          + "edTime\030\002 \001(\0132/.k8s.io.apimachinery.pkg.a"
          + "pis.meta.v1.MicroTime\022\r\n\005state\030\003 \001(\t\".\n\013"
          + "EventSource\022\021\n\tcomponent\030\001 \001(\t\022\014\n\004host\030\002"
          + " \001(\t\"\035\n\nExecAction\022\017\n\007command\030\001 \003(\t\"b\n\016F"
          + "CVolumeSource\022\022\n\ntargetWWNs\030\001 \003(\t\022\013\n\003lun"
          + "\030\002 \001(\005\022\016\n\006fsType\030\003 \001(\t\022\020\n\010readOnly\030\004 \001(\010"
          + "\022\r\n\005wwids\030\005 \003(\t\"\204\002\n\032FlexPersistentVolume"
          + "Source\022\016\n\006driver\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\0226"
          + "\n\tsecretRef\030\003 \001(\0132#.k8s.io.api.core.v1.S"
          + "ecretReference\022\020\n\010readOnly\030\004 \001(\010\022L\n\007opti"
          + "ons\030\005 \003(\0132;.k8s.io.api.core.v1.FlexPersi"
          + "stentVolumeSource.OptionsEntry\032.\n\014Option"
          + "sEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\365"
          + "\001\n\020FlexVolumeSource\022\016\n\006driver\030\001 \001(\t\022\016\n\006f"
          + "sType\030\002 \001(\t\022;\n\tsecretRef\030\003 \001(\0132(.k8s.io."
          + "api.core.v1.LocalObjectReference\022\020\n\010read"
          + "Only\030\004 \001(\010\022B\n\007options\030\005 \003(\01321.k8s.io.api"
          + ".core.v1.FlexVolumeSource.OptionsEntry\032."
          + "\n\014OptionsEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001"
          + "(\t:\0028\001\"?\n\023FlockerVolumeSource\022\023\n\013dataset"
          + "Name\030\001 \001(\t\022\023\n\013datasetUUID\030\002 \001(\t\"d\n\035GCEPe"
          + "rsistentDiskVolumeSource\022\016\n\006pdName\030\001 \001(\t"
          + "\022\016\n\006fsType\030\002 \001(\t\022\021\n\tpartition\030\003 \001(\005\022\020\n\010r"
          + "eadOnly\030\004 \001(\010\"N\n\023GitRepoVolumeSource\022\022\n\n"
          + "repository\030\001 \001(\t\022\020\n\010revision\030\002 \001(\t\022\021\n\tdi"
          + "rectory\030\003 \001(\t\"p\n\037GlusterfsPersistentVolu"
          + "meSource\022\021\n\tendpoints\030\001 \001(\t\022\014\n\004path\030\002 \001("
          + "\t\022\020\n\010readOnly\030\003 \001(\010\022\032\n\022endpointsNamespac"
          + "e\030\004 \001(\t\"J\n\025GlusterfsVolumeSource\022\021\n\tendp"
          + "oints\030\001 \001(\t\022\014\n\004path\030\002 \001(\t\022\020\n\010readOnly\030\003 "
          + "\001(\010\"\260\001\n\rHTTPGetAction\022\014\n\004path\030\001 \001(\t\022>\n\004p"
          + "ort\030\002 \001(\01320.k8s.io.apimachinery.pkg.util"
          + ".intstr.IntOrString\022\014\n\004host\030\003 \001(\t\022\016\n\006sch"
          + "eme\030\004 \001(\t\0223\n\013httpHeaders\030\005 \003(\0132\036.k8s.io."
          + "api.core.v1.HTTPHeader\")\n\nHTTPHeader\022\014\n\004"
          + "name\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"\243\001\n\007Handler\022,\n"
          + "\004exec\030\001 \001(\0132\036.k8s.io.api.core.v1.ExecAct"
          + "ion\0222\n\007httpGet\030\002 \001(\0132!.k8s.io.api.core.v"
          + "1.HTTPGetAction\0226\n\ttcpSocket\030\003 \001(\0132#.k8s"
          + ".io.api.core.v1.TCPSocketAction\"*\n\tHostA"
          + "lias\022\n\n\002ip\030\001 \001(\t\022\021\n\thostnames\030\002 \003(\t\"2\n\024H"
          + "ostPathVolumeSource\022\014\n\004path\030\001 \001(\t\022\014\n\004typ"
          + "e\030\002 \001(\t\"\233\002\n\033ISCSIPersistentVolumeSource\022"
          + "\024\n\014targetPortal\030\001 \001(\t\022\013\n\003iqn\030\002 \001(\t\022\013\n\003lu"
          + "n\030\003 \001(\005\022\026\n\016iscsiInterface\030\004 \001(\t\022\016\n\006fsTyp"
          + "e\030\005 \001(\t\022\020\n\010readOnly\030\006 \001(\010\022\017\n\007portals\030\007 \003"
          + "(\t\022\031\n\021chapAuthDiscovery\030\010 \001(\010\022\027\n\017chapAut"
          + "hSession\030\013 \001(\010\0226\n\tsecretRef\030\n \001(\0132#.k8s."
          + "io.api.core.v1.SecretReference\022\025\n\rinitia"
          + "torName\030\014 \001(\t\"\226\002\n\021ISCSIVolumeSource\022\024\n\014t"
          + "argetPortal\030\001 \001(\t\022\013\n\003iqn\030\002 \001(\t\022\013\n\003lun\030\003 "
          + "\001(\005\022\026\n\016iscsiInterface\030\004 \001(\t\022\016\n\006fsType\030\005 "
          + "\001(\t\022\020\n\010readOnly\030\006 \001(\010\022\017\n\007portals\030\007 \003(\t\022\031"
          + "\n\021chapAuthDiscovery\030\010 \001(\010\022\027\n\017chapAuthSes"
          + "sion\030\013 \001(\010\022;\n\tsecretRef\030\n \001(\0132(.k8s.io.a"
          + "pi.core.v1.LocalObjectReference\022\025\n\riniti"
          + "atorName\030\014 \001(\t\"4\n\tKeyToPath\022\013\n\003key\030\001 \001(\t"
          + "\022\014\n\004path\030\002 \001(\t\022\014\n\004mode\030\003 \001(\005\"i\n\tLifecycl"
          + "e\022.\n\tpostStart\030\001 \001(\0132\033.k8s.io.api.core.v"
          + "1.Handler\022,\n\007preStop\030\002 \001(\0132\033.k8s.io.api."
          + "core.v1.Handler\"\202\001\n\nLimitRange\022B\n\010metada"
          + "ta\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis."
          + "meta.v1.ObjectMeta\0220\n\004spec\030\002 \001(\0132\".k8s.i"
          + "o.api.core.v1.LimitRangeSpec\"\354\006\n\016LimitRa"
          + "ngeItem\022\014\n\004type\030\001 \001(\t\0228\n\003max\030\002 \003(\0132+.k8s"
          + ".io.api.core.v1.LimitRangeItem.MaxEntry\022"
          + "8\n\003min\030\003 \003(\0132+.k8s.io.api.core.v1.LimitR"
          + "angeItem.MinEntry\022@\n\007default\030\004 \003(\0132/.k8s"
          + ".io.api.core.v1.LimitRangeItem.DefaultEn"
          + "try\022N\n\016defaultRequest\030\005 \003(\01326.k8s.io.api"
          + ".core.v1.LimitRangeItem.DefaultRequestEn"
          + "try\022Z\n\024maxLimitRequestRatio\030\006 \003(\0132<.k8s."
          + "io.api.core.v1.LimitRangeItem.MaxLimitRe"
          + "questRatioEntry\032Z\n\010MaxEntry\022\013\n\003key\030\001 \001(\t"
          + "\022=\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pk"
          + "g.api.resource.Quantity:\0028\001\032Z\n\010MinEntry\022"
          + "\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.api"
          + "machinery.pkg.api.resource.Quantity:\0028\001\032"
          + "^\n\014DefaultEntry\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 "
          + "\001(\0132..k8s.io.apimachinery.pkg.api.resour"
          + "ce.Quantity:\0028\001\032e\n\023DefaultRequestEntry\022\013"
          + "\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.apim"
          + "achinery.pkg.api.resource.Quantity:\0028\001\032k"
          + "\n\031MaxLimitRequestRatioEntry\022\013\n\003key\030\001 \001(\t"
          + "\022=\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pk"
          + "g.api.resource.Quantity:\0028\001\"\201\001\n\016LimitRan"
          + "geList\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimac"
          + "hinery.pkg.apis.meta.v1.ListMeta\022-\n\005item"
          + "s\030\002 \003(\0132\036.k8s.io.api.core.v1.LimitRange\""
          + "D\n\016LimitRangeSpec\0222\n\006limits\030\001 \003(\0132\".k8s."
          + "io.api.core.v1.LimitRangeItem\"\206\001\n\004List\022@"
          + "\n\010metadata\030\001 \001(\0132..k8s.io.apimachinery.p"
          + "kg.apis.meta.v1.ListMeta\022<\n\005items\030\002 \003(\0132"
          + "-.k8s.io.apimachinery.pkg.runtime.RawExt"
          + "ension\"3\n\023LoadBalancerIngress\022\n\n\002ip\030\001 \001("
          + "\t\022\020\n\010hostname\030\002 \001(\t\"N\n\022LoadBalancerStatu"
          + "s\0228\n\007ingress\030\001 \003(\0132\'.k8s.io.api.core.v1."
          + "LoadBalancerIngress\"$\n\024LocalObjectRefere"
          + "nce\022\014\n\004name\030\001 \001(\t\"1\n\021LocalVolumeSource\022\014"
          + "\n\004path\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\"A\n\017NFSVolum"
          + "eSource\022\016\n\006server\030\001 \001(\t\022\014\n\004path\030\002 \001(\t\022\020\n"
          + "\010readOnly\030\003 \001(\010\"\265\001\n\tNamespace\022B\n\010metadat"
          + "a\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis.m"
          + "eta.v1.ObjectMeta\022/\n\004spec\030\002 \001(\0132!.k8s.io"
          + ".api.core.v1.NamespaceSpec\0223\n\006status\030\003 \001"
          + "(\0132#.k8s.io.api.core.v1.NamespaceStatus\""
          + "\177\n\rNamespaceList\022@\n\010metadata\030\001 \001(\0132..k8s"
          + ".io.apimachinery.pkg.apis.meta.v1.ListMe"
          + "ta\022,\n\005items\030\002 \003(\0132\035.k8s.io.api.core.v1.N"
          + "amespace\"#\n\rNamespaceSpec\022\022\n\nfinalizers\030"
          + "\001 \003(\t\" \n\017NamespaceStatus\022\r\n\005phase\030\001 \001(\t\""
          + "\246\001\n\004Node\022B\n\010metadata\030\001 \001(\01320.k8s.io.apim"
          + "achinery.pkg.apis.meta.v1.ObjectMeta\022*\n\004"
          + "spec\030\002 \001(\0132\034.k8s.io.api.core.v1.NodeSpec"
          + "\022.\n\006status\030\003 \001(\0132\036.k8s.io.api.core.v1.No"
          + "deStatus\",\n\013NodeAddress\022\014\n\004type\030\001 \001(\t\022\017\n"
          + "\007address\030\002 \001(\t\"\316\001\n\014NodeAffinity\022X\n.requi"
          + "redDuringSchedulingIgnoredDuringExecutio"
          + "n\030\001 \001(\0132 .k8s.io.api.core.v1.NodeSelecto"
          + "r\022d\n/preferredDuringSchedulingIgnoredDur"
          + "ingExecution\030\002 \003(\0132+.k8s.io.api.core.v1."
          + "PreferredSchedulingTerm\"\335\001\n\rNodeConditio"
          + "n\022\014\n\004type\030\001 \001(\t\022\016\n\006status\030\002 \001(\t\022E\n\021lastH"
          + "eartbeatTime\030\003 \001(\0132*.k8s.io.apimachinery"
          + ".pkg.apis.meta.v1.Time\022F\n\022lastTransition"
          + "Time\030\004 \001(\0132*.k8s.io.apimachinery.pkg.api"
          + "s.meta.v1.Time\022\016\n\006reason\030\005 \001(\t\022\017\n\007messag"
          + "e\030\006 \001(\t\"T\n\020NodeConfigSource\022@\n\tconfigMap"
          + "\030\002 \001(\0132-.k8s.io.api.core.v1.ConfigMapNod"
          + "eConfigSource\"\314\001\n\020NodeConfigStatus\0226\n\010as"
          + "signed\030\001 \001(\0132$.k8s.io.api.core.v1.NodeCo"
          + "nfigSource\0224\n\006active\030\002 \001(\0132$.k8s.io.api."
          + "core.v1.NodeConfigSource\022;\n\rlastKnownGoo"
          + "d\030\003 \001(\0132$.k8s.io.api.core.v1.NodeConfigS"
          + "ource\022\r\n\005error\030\004 \001(\t\"R\n\023NodeDaemonEndpoi"
          + "nts\022;\n\017kubeletEndpoint\030\001 \001(\0132\".k8s.io.ap"
          + "i.core.v1.DaemonEndpoint\"u\n\010NodeList\022@\n\010"
          + "metadata\030\001 \001(\0132..k8s.io.apimachinery.pkg"
          + ".apis.meta.v1.ListMeta\022\'\n\005items\030\002 \003(\0132\030."
          + "k8s.io.api.core.v1.Node\" \n\020NodeProxyOpti"
          + "ons\022\014\n\004path\030\001 \001(\t\"\263\001\n\rNodeResources\022A\n\010c"
          + "apacity\030\001 \003(\0132/.k8s.io.api.core.v1.NodeR"
          + "esources.CapacityEntry\032_\n\rCapacityEntry\022"
          + "\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.api"
          + "machinery.pkg.api.resource.Quantity:\0028\001\""
          + "O\n\014NodeSelector\022?\n\021nodeSelectorTerms\030\001 \003"
          + "(\0132$.k8s.io.api.core.v1.NodeSelectorTerm"
          + "\"H\n\027NodeSelectorRequirement\022\013\n\003key\030\001 \001(\t"
          + "\022\020\n\010operator\030\002 \001(\t\022\016\n\006values\030\003 \003(\t\"\233\001\n\020N"
          + "odeSelectorTerm\022E\n\020matchExpressions\030\001 \003("
          + "\0132+.k8s.io.api.core.v1.NodeSelectorRequi"
          + "rement\022@\n\013matchFields\030\002 \003(\0132+.k8s.io.api"
          + ".core.v1.NodeSelectorRequirement\"\301\001\n\010Nod"
          + "eSpec\022\017\n\007podCIDR\030\001 \001(\t\022\022\n\nproviderID\030\003 \001"
          + "(\t\022\025\n\runschedulable\030\004 \001(\010\022)\n\006taints\030\005 \003("
          + "\0132\031.k8s.io.api.core.v1.Taint\022:\n\014configSo"
          + "urce\030\006 \001(\0132$.k8s.io.api.core.v1.NodeConf"
          + "igSource\022\022\n\nexternalID\030\002 \001(\t\"\206\006\n\nNodeSta"
          + "tus\022>\n\010capacity\030\001 \003(\0132,.k8s.io.api.core."
          + "v1.NodeStatus.CapacityEntry\022D\n\013allocatab"
          + "le\030\002 \003(\0132/.k8s.io.api.core.v1.NodeStatus"
          + ".AllocatableEntry\022\r\n\005phase\030\003 \001(\t\0225\n\ncond"
          + "itions\030\004 \003(\0132!.k8s.io.api.core.v1.NodeCo"
          + "ndition\0222\n\taddresses\030\005 \003(\0132\037.k8s.io.api."
          + "core.v1.NodeAddress\022@\n\017daemonEndpoints\030\006"
          + " \001(\0132\'.k8s.io.api.core.v1.NodeDaemonEndp"
          + "oints\0224\n\010nodeInfo\030\007 \001(\0132\".k8s.io.api.cor"
          + "e.v1.NodeSystemInfo\0222\n\006images\030\010 \003(\0132\".k8"
          + "s.io.api.core.v1.ContainerImage\022\024\n\014volum"
          + "esInUse\030\t \003(\t\022;\n\017volumesAttached\030\n \003(\0132\""
          + ".k8s.io.api.core.v1.AttachedVolume\0224\n\006co"
          + "nfig\030\013 \001(\0132$.k8s.io.api.core.v1.NodeConf"
          + "igStatus\032_\n\rCapacityEntry\022\013\n\003key\030\001 \001(\t\022="
          + "\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pkg."
          + "api.resource.Quantity:\0028\001\032b\n\020Allocatable"
          + "Entry\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s."
          + "io.apimachinery.pkg.api.resource.Quantit"
          + "y:\0028\001\"\361\001\n\016NodeSystemInfo\022\021\n\tmachineID\030\001 "
          + "\001(\t\022\022\n\nsystemUUID\030\002 \001(\t\022\016\n\006bootID\030\003 \001(\t\022"
          + "\025\n\rkernelVersion\030\004 \001(\t\022\017\n\007osImage\030\005 \001(\t\022"
          + "\037\n\027containerRuntimeVersion\030\006 \001(\t\022\026\n\016kube"
          + "letVersion\030\007 \001(\t\022\030\n\020kubeProxyVersion\030\010 \001"
          + "(\t\022\027\n\017operatingSystem\030\t \001(\t\022\024\n\014architect"
          + "ure\030\n \001(\t\"<\n\023ObjectFieldSelector\022\022\n\napiV"
          + "ersion\030\001 \001(\t\022\021\n\tfieldPath\030\002 \001(\t\"\215\001\n\017Obje"
          + "ctReference\022\014\n\004kind\030\001 \001(\t\022\021\n\tnamespace\030\002"
          + " \001(\t\022\014\n\004name\030\003 \001(\t\022\013\n\003uid\030\004 \001(\t\022\022\n\napiVe"
          + "rsion\030\005 \001(\t\022\027\n\017resourceVersion\030\006 \001(\t\022\021\n\t"
          + "fieldPath\030\007 \001(\t\"\312\001\n\020PersistentVolume\022B\n\010"
          + "metadata\030\001 \001(\01320.k8s.io.apimachinery.pkg"
          + ".apis.meta.v1.ObjectMeta\0226\n\004spec\030\002 \001(\0132("
          + ".k8s.io.api.core.v1.PersistentVolumeSpec"
          + "\022:\n\006status\030\003 \001(\0132*.k8s.io.api.core.v1.Pe"
          + "rsistentVolumeStatus\"\331\001\n\025PersistentVolum"
          + "eClaim\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimac"
          + "hinery.pkg.apis.meta.v1.ObjectMeta\022;\n\004sp"
          + "ec\030\002 \001(\0132-.k8s.io.api.core.v1.Persistent"
          + "VolumeClaimSpec\022?\n\006status\030\003 \001(\0132/.k8s.io",
      ".api.core.v1.PersistentVolumeClaimStatus"
          + "\"\352\001\n\036PersistentVolumeClaimCondition\022\014\n\004t"
          + "ype\030\001 \001(\t\022\016\n\006status\030\002 \001(\t\022A\n\rlastProbeTi"
          + "me\030\003 \001(\0132*.k8s.io.apimachinery.pkg.apis."
          + "meta.v1.Time\022F\n\022lastTransitionTime\030\004 \001(\013"
          + "2*.k8s.io.apimachinery.pkg.apis.meta.v1."
          + "Time\022\016\n\006reason\030\005 \001(\t\022\017\n\007message\030\006 \001(\t\"\227\001"
          + "\n\031PersistentVolumeClaimList\022@\n\010metadata\030"
          + "\001 \001(\0132..k8s.io.apimachinery.pkg.apis.met"
          + "a.v1.ListMeta\0228\n\005items\030\002 \003(\0132).k8s.io.ap"
          + "i.core.v1.PersistentVolumeClaim\"\271\002\n\031Pers"
          + "istentVolumeClaimSpec\022\023\n\013accessModes\030\001 \003"
          + "(\t\022E\n\010selector\030\004 \001(\01323.k8s.io.apimachine"
          + "ry.pkg.apis.meta.v1.LabelSelector\022;\n\tres"
          + "ources\030\002 \001(\0132(.k8s.io.api.core.v1.Resour"
          + "ceRequirements\022\022\n\nvolumeName\030\003 \001(\t\022\030\n\020st"
          + "orageClassName\030\005 \001(\t\022\022\n\nvolumeMode\030\006 \001(\t"
          + "\022A\n\ndataSource\030\007 \001(\0132-.k8s.io.api.core.v"
          + "1.TypedLocalObjectReference\"\273\002\n\033Persiste"
          + "ntVolumeClaimStatus\022\r\n\005phase\030\001 \001(\t\022\023\n\013ac"
          + "cessModes\030\002 \003(\t\022O\n\010capacity\030\003 \003(\0132=.k8s."
          + "io.api.core.v1.PersistentVolumeClaimStat"
          + "us.CapacityEntry\022F\n\nconditions\030\004 \003(\01322.k"
          + "8s.io.api.core.v1.PersistentVolumeClaimC"
          + "ondition\032_\n\rCapacityEntry\022\013\n\003key\030\001 \001(\t\022="
          + "\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pkg."
          + "api.resource.Quantity:\0028\001\"H\n!PersistentV"
          + "olumeClaimVolumeSource\022\021\n\tclaimName\030\001 \001("
          + "\t\022\020\n\010readOnly\030\002 \001(\010\"\215\001\n\024PersistentVolume"
          + "List\022@\n\010metadata\030\001 \001(\0132..k8s.io.apimachi"
          + "nery.pkg.apis.meta.v1.ListMeta\0223\n\005items\030"
          + "\002 \003(\0132$.k8s.io.api.core.v1.PersistentVol"
          + "ume\"\275\013\n\026PersistentVolumeSource\022L\n\021gcePer"
          + "sistentDisk\030\001 \001(\01321.k8s.io.api.core.v1.G"
          + "CEPersistentDiskVolumeSource\022R\n\024awsElast"
          + "icBlockStore\030\002 \001(\01324.k8s.io.api.core.v1."
          + "AWSElasticBlockStoreVolumeSource\022:\n\010host"
          + "Path\030\003 \001(\0132(.k8s.io.api.core.v1.HostPath"
          + "VolumeSource\022F\n\tglusterfs\030\004 \001(\01323.k8s.io"
          + ".api.core.v1.GlusterfsPersistentVolumeSo"
          + "urce\0220\n\003nfs\030\005 \001(\0132#.k8s.io.api.core.v1.N"
          + "FSVolumeSource\022:\n\003rbd\030\006 \001(\0132-.k8s.io.api"
          + ".core.v1.RBDPersistentVolumeSource\022>\n\005is"
          + "csi\030\007 \001(\0132/.k8s.io.api.core.v1.ISCSIPers"
          + "istentVolumeSource\022@\n\006cinder\030\010 \001(\01320.k8s"
          + ".io.api.core.v1.CinderPersistentVolumeSo"
          + "urce\022@\n\006cephfs\030\t \001(\01320.k8s.io.api.core.v"
          + "1.CephFSPersistentVolumeSource\022.\n\002fc\030\n \001"
          + "(\0132\".k8s.io.api.core.v1.FCVolumeSource\0228"
          + "\n\007flocker\030\013 \001(\0132\'.k8s.io.api.core.v1.Flo"
          + "ckerVolumeSource\022B\n\nflexVolume\030\014 \001(\0132..k"
          + "8s.io.api.core.v1.FlexPersistentVolumeSo"
          + "urce\022F\n\tazureFile\030\r \001(\01323.k8s.io.api.cor"
          + "e.v1.AzureFilePersistentVolumeSource\022I\n\r"
          + "vsphereVolume\030\016 \001(\01322.k8s.io.api.core.v1"
          + ".VsphereVirtualDiskVolumeSource\0228\n\007quoby"
          + "te\030\017 \001(\0132\'.k8s.io.api.core.v1.QuobyteVol"
          + "umeSource\022<\n\tazureDisk\030\020 \001(\0132).k8s.io.ap"
          + "i.core.v1.AzureDiskVolumeSource\022R\n\024photo"
          + "nPersistentDisk\030\021 \001(\01324.k8s.io.api.core."
          + "v1.PhotonPersistentDiskVolumeSource\022@\n\016p"
          + "ortworxVolume\030\022 \001(\0132(.k8s.io.api.core.v1"
          + ".PortworxVolumeSource\022B\n\007scaleIO\030\023 \001(\01321"
          + ".k8s.io.api.core.v1.ScaleIOPersistentVol"
          + "umeSource\0224\n\005local\030\024 \001(\0132%.k8s.io.api.co"
          + "re.v1.LocalVolumeSource\022F\n\tstorageos\030\025 \001"
          + "(\01323.k8s.io.api.core.v1.StorageOSPersist"
          + "entVolumeSource\022:\n\003csi\030\026 \001(\0132-.k8s.io.ap"
          + "i.core.v1.CSIPersistentVolumeSource\"\202\004\n\024"
          + "PersistentVolumeSpec\022H\n\010capacity\030\001 \003(\01326"
          + ".k8s.io.api.core.v1.PersistentVolumeSpec"
          + ".CapacityEntry\022J\n\026persistentVolumeSource"
          + "\030\002 \001(\0132*.k8s.io.api.core.v1.PersistentVo"
          + "lumeSource\022\023\n\013accessModes\030\003 \003(\t\0225\n\010claim"
          + "Ref\030\004 \001(\0132#.k8s.io.api.core.v1.ObjectRef"
          + "erence\022%\n\035persistentVolumeReclaimPolicy\030"
          + "\005 \001(\t\022\030\n\020storageClassName\030\006 \001(\t\022\024\n\014mount"
          + "Options\030\007 \003(\t\022\022\n\nvolumeMode\030\010 \001(\t\022<\n\014nod"
          + "eAffinity\030\t \001(\0132&.k8s.io.api.core.v1.Vol"
          + "umeNodeAffinity\032_\n\rCapacityEntry\022\013\n\003key\030"
          + "\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.apimachine"
          + "ry.pkg.api.resource.Quantity:\0028\001\"H\n\026Pers"
          + "istentVolumeStatus\022\r\n\005phase\030\001 \001(\t\022\017\n\007mes"
          + "sage\030\002 \001(\t\022\016\n\006reason\030\003 \001(\t\"@\n PhotonPers"
          + "istentDiskVolumeSource\022\014\n\004pdID\030\001 \001(\t\022\016\n\006"
          + "fsType\030\002 \001(\t\"\243\001\n\003Pod\022B\n\010metadata\030\001 \001(\01320"
          + ".k8s.io.apimachinery.pkg.apis.meta.v1.Ob"
          + "jectMeta\022)\n\004spec\030\002 \001(\0132\033.k8s.io.api.core"
          + ".v1.PodSpec\022-\n\006status\030\003 \001(\0132\035.k8s.io.api"
          + ".core.v1.PodStatus\"\320\001\n\013PodAffinity\022[\n.re"
          + "quiredDuringSchedulingIgnoredDuringExecu"
          + "tion\030\001 \003(\0132#.k8s.io.api.core.v1.PodAffin"
          + "ityTerm\022d\n/preferredDuringSchedulingIgno"
          + "redDuringExecution\030\002 \003(\0132+.k8s.io.api.co"
          + "re.v1.WeightedPodAffinityTerm\"\206\001\n\017PodAff"
          + "inityTerm\022J\n\rlabelSelector\030\001 \001(\01323.k8s.i"
          + "o.apimachinery.pkg.apis.meta.v1.LabelSel"
          + "ector\022\022\n\nnamespaces\030\002 \003(\t\022\023\n\013topologyKey"
          + "\030\003 \001(\t\"\324\001\n\017PodAntiAffinity\022[\n.requiredDu"
          + "ringSchedulingIgnoredDuringExecution\030\001 \003"
          + "(\0132#.k8s.io.api.core.v1.PodAffinityTerm\022"
          + "d\n/preferredDuringSchedulingIgnoredDurin"
          + "gExecution\030\002 \003(\0132+.k8s.io.api.core.v1.We"
          + "ightedPodAffinityTerm\"a\n\020PodAttachOption"
          + "s\022\r\n\005stdin\030\001 \001(\010\022\016\n\006stdout\030\002 \001(\010\022\016\n\006stde"
          + "rr\030\003 \001(\010\022\013\n\003tty\030\004 \001(\010\022\021\n\tcontainer\030\005 \001(\t"
          + "\"\330\001\n\014PodCondition\022\014\n\004type\030\001 \001(\t\022\016\n\006statu"
          + "s\030\002 \001(\t\022A\n\rlastProbeTime\030\003 \001(\0132*.k8s.io."
          + "apimachinery.pkg.apis.meta.v1.Time\022F\n\022la"
          + "stTransitionTime\030\004 \001(\0132*.k8s.io.apimachi"
          + "nery.pkg.apis.meta.v1.Time\022\016\n\006reason\030\005 \001"
          + "(\t\022\017\n\007message\030\006 \001(\t\"n\n\014PodDNSConfig\022\023\n\013n"
          + "ameservers\030\001 \003(\t\022\020\n\010searches\030\002 \003(\t\0227\n\007op"
          + "tions\030\003 \003(\0132&.k8s.io.api.core.v1.PodDNSC"
          + "onfigOption\"1\n\022PodDNSConfigOption\022\014\n\004nam"
          + "e\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\"p\n\016PodExecOptions"
          + "\022\r\n\005stdin\030\001 \001(\010\022\016\n\006stdout\030\002 \001(\010\022\016\n\006stder"
          + "r\030\003 \001(\010\022\013\n\003tty\030\004 \001(\010\022\021\n\tcontainer\030\005 \001(\t\022"
          + "\017\n\007command\030\006 \003(\t\"s\n\007PodList\022@\n\010metadata\030"
          + "\001 \001(\0132..k8s.io.apimachinery.pkg.apis.met"
          + "a.v1.ListMeta\022&\n\005items\030\002 \003(\0132\027.k8s.io.ap"
          + "i.core.v1.Pod\"\324\001\n\rPodLogOptions\022\021\n\tconta"
          + "iner\030\001 \001(\t\022\016\n\006follow\030\002 \001(\010\022\020\n\010previous\030\003"
          + " \001(\010\022\024\n\014sinceSeconds\030\004 \001(\003\022=\n\tsinceTime\030"
          + "\005 \001(\0132*.k8s.io.apimachinery.pkg.apis.met"
          + "a.v1.Time\022\022\n\ntimestamps\030\006 \001(\010\022\021\n\ttailLin"
          + "es\030\007 \001(\003\022\022\n\nlimitBytes\030\010 \001(\003\"&\n\025PodPortF"
          + "orwardOptions\022\r\n\005ports\030\001 \003(\005\"\037\n\017PodProxy"
          + "Options\022\014\n\004path\030\001 \001(\t\")\n\020PodReadinessGat"
          + "e\022\025\n\rconditionType\030\001 \001(\t\"\347\001\n\022PodSecurity"
          + "Context\022:\n\016seLinuxOptions\030\001 \001(\0132\".k8s.io"
          + ".api.core.v1.SELinuxOptions\022\021\n\trunAsUser"
          + "\030\002 \001(\003\022\022\n\nrunAsGroup\030\006 \001(\003\022\024\n\014runAsNonRo"
          + "ot\030\003 \001(\010\022\032\n\022supplementalGroups\030\004 \003(\003\022\017\n\007"
          + "fsGroup\030\005 \001(\003\022+\n\007sysctls\030\007 \003(\0132\032.k8s.io."
          + "api.core.v1.Sysctl\"[\n\014PodSignature\022K\n\rpo"
          + "dController\030\001 \001(\01324.k8s.io.apimachinery."
          + "pkg.apis.meta.v1.OwnerReference\"\374\010\n\007PodS"
          + "pec\022+\n\007volumes\030\001 \003(\0132\032.k8s.io.api.core.v"
          + "1.Volume\0225\n\016initContainers\030\024 \003(\0132\035.k8s.i"
          + "o.api.core.v1.Container\0221\n\ncontainers\030\002 "
          + "\003(\0132\035.k8s.io.api.core.v1.Container\022\025\n\rre"
          + "startPolicy\030\003 \001(\t\022%\n\035terminationGracePer"
          + "iodSeconds\030\004 \001(\003\022\035\n\025activeDeadlineSecond"
          + "s\030\005 \001(\003\022\021\n\tdnsPolicy\030\006 \001(\t\022C\n\014nodeSelect"
          + "or\030\007 \003(\0132-.k8s.io.api.core.v1.PodSpec.No"
          + "deSelectorEntry\022\032\n\022serviceAccountName\030\010 "
          + "\001(\t\022\026\n\016serviceAccount\030\t \001(\t\022$\n\034automount"
          + "ServiceAccountToken\030\025 \001(\010\022\020\n\010nodeName\030\n "
          + "\001(\t\022\023\n\013hostNetwork\030\013 \001(\010\022\017\n\007hostPID\030\014 \001("
          + "\010\022\017\n\007hostIPC\030\r \001(\010\022\035\n\025shareProcessNamesp"
          + "ace\030\033 \001(\010\022?\n\017securityContext\030\016 \001(\0132&.k8s"
          + ".io.api.core.v1.PodSecurityContext\022B\n\020im"
          + "agePullSecrets\030\017 \003(\0132(.k8s.io.api.core.v"
          + "1.LocalObjectReference\022\020\n\010hostname\030\020 \001(\t"
          + "\022\021\n\tsubdomain\030\021 \001(\t\022.\n\010affinity\030\022 \001(\0132\034."
          + "k8s.io.api.core.v1.Affinity\022\025\n\rscheduler"
          + "Name\030\023 \001(\t\0223\n\013tolerations\030\026 \003(\0132\036.k8s.io"
          + ".api.core.v1.Toleration\0222\n\013hostAliases\030\027"
          + " \003(\0132\035.k8s.io.api.core.v1.HostAlias\022\031\n\021p"
          + "riorityClassName\030\030 \001(\t\022\020\n\010priority\030\031 \001(\005"
          + "\0223\n\tdnsConfig\030\032 \001(\0132 .k8s.io.api.core.v1"
          + ".PodDNSConfig\022<\n\016readinessGates\030\034 \003(\0132$."
          + "k8s.io.api.core.v1.PodReadinessGate\022\030\n\020r"
          + "untimeClassName\030\035 \001(\t\022\032\n\022enableServiceLi"
          + "nks\030\036 \001(\010\0323\n\021NodeSelectorEntry\022\013\n\003key\030\001 "
          + "\001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\200\003\n\tPodStatus\022\r\n\005"
          + "phase\030\001 \001(\t\0224\n\nconditions\030\002 \003(\0132 .k8s.io"
          + ".api.core.v1.PodCondition\022\017\n\007message\030\003 \001"
          + "(\t\022\016\n\006reason\030\004 \001(\t\022\031\n\021nominatedNodeName\030"
          + "\013 \001(\t\022\016\n\006hostIP\030\005 \001(\t\022\r\n\005podIP\030\006 \001(\t\022=\n\t"
          + "startTime\030\007 \001(\0132*.k8s.io.apimachinery.pk"
          + "g.apis.meta.v1.Time\022B\n\025initContainerStat"
          + "uses\030\n \003(\0132#.k8s.io.api.core.v1.Containe"
          + "rStatus\022>\n\021containerStatuses\030\010 \003(\0132#.k8s"
          + ".io.api.core.v1.ContainerStatus\022\020\n\010qosCl"
          + "ass\030\t \001(\t\"\204\001\n\017PodStatusResult\022B\n\010metadat"
          + "a\030\001 \001(\01320.k8s.io.apimachinery.pkg.apis.m"
          + "eta.v1.ObjectMeta\022-\n\006status\030\002 \001(\0132\035.k8s."
          + "io.api.core.v1.PodStatus\"\210\001\n\013PodTemplate"
          + "\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimachinery"
          + ".pkg.apis.meta.v1.ObjectMeta\0225\n\010template"
          + "\030\002 \001(\0132#.k8s.io.api.core.v1.PodTemplateS"
          + "pec\"\203\001\n\017PodTemplateList\022@\n\010metadata\030\001 \001("
          + "\0132..k8s.io.apimachinery.pkg.apis.meta.v1"
          + ".ListMeta\022.\n\005items\030\002 \003(\0132\037.k8s.io.api.co"
          + "re.v1.PodTemplate\"\200\001\n\017PodTemplateSpec\022B\n"
          + "\010metadata\030\001 \001(\01320.k8s.io.apimachinery.pk"
          + "g.apis.meta.v1.ObjectMeta\022)\n\004spec\030\002 \001(\0132"
          + "\033.k8s.io.api.core.v1.PodSpec\"J\n\024Portworx"
          + "VolumeSource\022\020\n\010volumeID\030\001 \001(\t\022\016\n\006fsType"
          + "\030\002 \001(\t\022\020\n\010readOnly\030\003 \001(\010\"\034\n\rPrecondition"
          + "s\022\013\n\003uid\030\001 \001(\t\"\261\001\n\024PreferAvoidPodsEntry\022"
          + "6\n\014podSignature\030\001 \001(\0132 .k8s.io.api.core."
          + "v1.PodSignature\022@\n\014evictionTime\030\002 \001(\0132*."
          + "k8s.io.apimachinery.pkg.apis.meta.v1.Tim"
          + "e\022\016\n\006reason\030\003 \001(\t\022\017\n\007message\030\004 \001(\t\"c\n\027Pr"
          + "eferredSchedulingTerm\022\016\n\006weight\030\001 \001(\005\0228\n"
          + "\npreference\030\002 \001(\0132$.k8s.io.api.core.v1.N"
          + "odeSelectorTerm\"\265\001\n\005Probe\022,\n\007handler\030\001 \001"
          + "(\0132\033.k8s.io.api.core.v1.Handler\022\033\n\023initi"
          + "alDelaySeconds\030\002 \001(\005\022\026\n\016timeoutSeconds\030\003"
          + " \001(\005\022\025\n\rperiodSeconds\030\004 \001(\005\022\030\n\020successTh"
          + "reshold\030\005 \001(\005\022\030\n\020failureThreshold\030\006 \001(\005\""
          + "c\n\025ProjectedVolumeSource\0225\n\007sources\030\001 \003("
          + "\0132$.k8s.io.api.core.v1.VolumeProjection\022"
          + "\023\n\013defaultMode\030\002 \001(\005\"f\n\023QuobyteVolumeSou"
          + "rce\022\020\n\010registry\030\001 \001(\t\022\016\n\006volume\030\002 \001(\t\022\020\n"
          + "\010readOnly\030\003 \001(\010\022\014\n\004user\030\004 \001(\t\022\r\n\005group\030\005"
          + " \001(\t\"\303\001\n\031RBDPersistentVolumeSource\022\020\n\010mo"
          + "nitors\030\001 \003(\t\022\r\n\005image\030\002 \001(\t\022\016\n\006fsType\030\003 "
          + "\001(\t\022\014\n\004pool\030\004 \001(\t\022\014\n\004user\030\005 \001(\t\022\017\n\007keyri"
          + "ng\030\006 \001(\t\0226\n\tsecretRef\030\007 \001(\0132#.k8s.io.api"
          + ".core.v1.SecretReference\022\020\n\010readOnly\030\010 \001"
          + "(\010\"\276\001\n\017RBDVolumeSource\022\020\n\010monitors\030\001 \003(\t"
          + "\022\r\n\005image\030\002 \001(\t\022\016\n\006fsType\030\003 \001(\t\022\014\n\004pool\030"
          + "\004 \001(\t\022\014\n\004user\030\005 \001(\t\022\017\n\007keyring\030\006 \001(\t\022;\n\t"
          + "secretRef\030\007 \001(\0132(.k8s.io.api.core.v1.Loc"
          + "alObjectReference\022\020\n\010readOnly\030\010 \001(\010\"r\n\017R"
          + "angeAllocation\022B\n\010metadata\030\001 \001(\01320.k8s.i"
          + "o.apimachinery.pkg.apis.meta.v1.ObjectMe"
          + "ta\022\r\n\005range\030\002 \001(\t\022\014\n\004data\030\003 \001(\014\"\331\001\n\025Repl"
          + "icationController\022B\n\010metadata\030\001 \001(\01320.k8"
          + "s.io.apimachinery.pkg.apis.meta.v1.Objec"
          + "tMeta\022;\n\004spec\030\002 \001(\0132-.k8s.io.api.core.v1"
          + ".ReplicationControllerSpec\022?\n\006status\030\003 \001"
          + "(\0132/.k8s.io.api.core.v1.ReplicationContr"
          + "ollerStatus\"\247\001\n\036ReplicationControllerCon"
          + "dition\022\014\n\004type\030\001 \001(\t\022\016\n\006status\030\002 \001(\t\022F\n\022"
          + "lastTransitionTime\030\003 \001(\0132*.k8s.io.apimac"
          + "hinery.pkg.apis.meta.v1.Time\022\016\n\006reason\030\004"
          + " \001(\t\022\017\n\007message\030\005 \001(\t\"\227\001\n\031ReplicationCon"
          + "trollerList\022@\n\010metadata\030\001 \001(\0132..k8s.io.a"
          + "pimachinery.pkg.apis.meta.v1.ListMeta\0228\n"
          + "\005items\030\002 \003(\0132).k8s.io.api.core.v1.Replic"
          + "ationController\"\375\001\n\031ReplicationControlle"
          + "rSpec\022\020\n\010replicas\030\001 \001(\005\022\027\n\017minReadySecon"
          + "ds\030\004 \001(\005\022M\n\010selector\030\002 \003(\0132;.k8s.io.api."
          + "core.v1.ReplicationControllerSpec.Select"
          + "orEntry\0225\n\010template\030\003 \001(\0132#.k8s.io.api.c"
          + "ore.v1.PodTemplateSpec\032/\n\rSelectorEntry\022"
          + "\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"\343\001\n\033Repl"
          + "icationControllerStatus\022\020\n\010replicas\030\001 \001("
          + "\005\022\034\n\024fullyLabeledReplicas\030\002 \001(\005\022\025\n\rready"
          + "Replicas\030\004 \001(\005\022\031\n\021availableReplicas\030\005 \001("
          + "\005\022\032\n\022observedGeneration\030\003 \001(\003\022F\n\nconditi"
          + "ons\030\006 \003(\01322.k8s.io.api.core.v1.Replicati"
          + "onControllerCondition\"\201\001\n\025ResourceFieldS"
          + "elector\022\025\n\rcontainerName\030\001 \001(\t\022\020\n\010resour"
          + "ce\030\002 \001(\t\022?\n\007divisor\030\003 \001(\0132..k8s.io.apima"
          + "chinery.pkg.api.resource.Quantity\"\301\001\n\rRe"
          + "sourceQuota\022B\n\010metadata\030\001 \001(\01320.k8s.io.a"
          + "pimachinery.pkg.apis.meta.v1.ObjectMeta\022"
          + "3\n\004spec\030\002 \001(\0132%.k8s.io.api.core.v1.Resou"
          + "rceQuotaSpec\0227\n\006status\030\003 \001(\0132\'.k8s.io.ap"
          + "i.core.v1.ResourceQuotaStatus\"\207\001\n\021Resour"
          + "ceQuotaList\022@\n\010metadata\030\001 \001(\0132..k8s.io.a"
          + "pimachinery.pkg.apis.meta.v1.ListMeta\0220\n"
          + "\005items\030\002 \003(\0132!.k8s.io.api.core.v1.Resour"
          + "ceQuota\"\371\001\n\021ResourceQuotaSpec\022=\n\004hard\030\001 "
          + "\003(\0132/.k8s.io.api.core.v1.ResourceQuotaSp"
          + "ec.HardEntry\022\016\n\006scopes\030\002 \003(\t\0228\n\rscopeSel"
          + "ector\030\003 \001(\0132!.k8s.io.api.core.v1.ScopeSe"
          + "lector\032[\n\tHardEntry\022\013\n\003key\030\001 \001(\t\022=\n\005valu"
          + "e\030\002 \001(\0132..k8s.io.apimachinery.pkg.api.re"
          + "source.Quantity:\0028\001\"\321\002\n\023ResourceQuotaSta"
          + "tus\022?\n\004hard\030\001 \003(\01321.k8s.io.api.core.v1.R"
          + "esourceQuotaStatus.HardEntry\022?\n\004used\030\002 \003"
          + "(\01321.k8s.io.api.core.v1.ResourceQuotaSta"
          + "tus.UsedEntry\032[\n\tHardEntry\022\013\n\003key\030\001 \001(\t\022"
          + "=\n\005value\030\002 \001(\0132..k8s.io.apimachinery.pkg"
          + ".api.resource.Quantity:\0028\001\032[\n\tUsedEntry\022"
          + "\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.api"
          + "machinery.pkg.api.resource.Quantity:\0028\001\""
          + "\346\002\n\024ResourceRequirements\022D\n\006limits\030\001 \003(\013"
          + "24.k8s.io.api.core.v1.ResourceRequiremen"
          + "ts.LimitsEntry\022H\n\010requests\030\002 \003(\01326.k8s.i"
          + "o.api.core.v1.ResourceRequirements.Reque"
          + "stsEntry\032]\n\013LimitsEntry\022\013\n\003key\030\001 \001(\t\022=\n\005"
          + "value\030\002 \001(\0132..k8s.io.apimachinery.pkg.ap"
          + "i.resource.Quantity:\0028\001\032_\n\rRequestsEntry"
          + "\022\013\n\003key\030\001 \001(\t\022=\n\005value\030\002 \001(\0132..k8s.io.ap"
          + "imachinery.pkg.api.resource.Quantity:\0028\001"
          + "\"I\n\016SELinuxOptions\022\014\n\004user\030\001 \001(\t\022\014\n\004role"
          + "\030\002 \001(\t\022\014\n\004type\030\003 \001(\t\022\r\n\005level\030\004 \001(\t\"\206\002\n\035"
          + "ScaleIOPersistentVolumeSource\022\017\n\007gateway"
          + "\030\001 \001(\t\022\016\n\006system\030\002 \001(\t\0226\n\tsecretRef\030\003 \001("
          + "\0132#.k8s.io.api.core.v1.SecretReference\022\022"
          + "\n\nsslEnabled\030\004 \001(\010\022\030\n\020protectionDomain\030\005"
          + " \001(\t\022\023\n\013storagePool\030\006 \001(\t\022\023\n\013storageMode"
          + "\030\007 \001(\t\022\022\n\nvolumeName\030\010 \001(\t\022\016\n\006fsType\030\t \001"
          + "(\t\022\020\n\010readOnly\030\n \001(\010\"\201\002\n\023ScaleIOVolumeSo"
          + "urce\022\017\n\007gateway\030\001 \001(\t\022\016\n\006system\030\002 \001(\t\022;\n"
          + "\tsecretRef\030\003 \001(\0132(.k8s.io.api.core.v1.Lo"
          + "calObjectReference\022\022\n\nsslEnabled\030\004 \001(\010\022\030"
          + "\n\020protectionDomain\030\005 \001(\t\022\023\n\013storagePool\030"
          + "\006 \001(\t\022\023\n\013storageMode\030\007 \001(\t\022\022\n\nvolumeName"
          + "\030\010 \001(\t\022\016\n\006fsType\030\t \001(\t\022\020\n\010readOnly\030\n \001(\010"
          + "\"`\n\rScopeSelector\022O\n\020matchExpressions\030\001 "
          + "\003(\01325.k8s.io.api.core.v1.ScopedResourceS"
          + "electorRequirement\"X\n!ScopedResourceSele"
          + "ctorRequirement\022\021\n\tscopeName\030\001 \001(\t\022\020\n\010op"
          + "erator\030\002 \001(\t\022\016\n\006values\030\003 \003(\t\"\256\002\n\006Secret\022"
          + "B\n\010metadata\030\001 \001(\01320.k8s.io.apimachinery."
          + "pkg.apis.meta.v1.ObjectMeta\0222\n\004data\030\002 \003("
          + "\0132$.k8s.io.api.core.v1.Secret.DataEntry\022"
          + ">\n\nstringData\030\004 \003(\0132*.k8s.io.api.core.v1"
          + ".Secret.StringDataEntry\022\014\n\004type\030\003 \001(\t\032+\n"
          + "\tDataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\014:\002"
          + "8\001\0321\n\017StringDataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005va"
          + "lue\030\002 \001(\t:\0028\001\"k\n\017SecretEnvSource\022F\n\024loca"
          + "lObjectReference\030\001 \001(\0132(.k8s.io.api.core"
          + ".v1.LocalObjectReference\022\020\n\010optional\030\002 \001"
          + "(\010\"z\n\021SecretKeySelector\022F\n\024localObjectRe"
          + "ference\030\001 \001(\0132(.k8s.io.api.core.v1.Local"
          + "ObjectReference\022\013\n\003key\030\002 \001(\t\022\020\n\010optional"
          + "\030\003 \001(\010\"y\n\nSecretList\022@\n\010metadata\030\001 \001(\0132."
          + ".k8s.io.apimachinery.pkg.apis.meta.v1.Li"
          + "stMeta\022)\n\005items\030\002 \003(\0132\032.k8s.io.api.core."
          + "v1.Secret\"\232\001\n\020SecretProjection\022F\n\024localO"
          + "bjectReference\030\001 \001(\0132(.k8s.io.api.core.v"
          + "1.LocalObjectReference\022,\n\005items\030\002 \003(\0132\035."
          + "k8s.io.api.core.v1.KeyToPath\022\020\n\010optional"
          + "\030\004 \001(\010\"2\n\017SecretReference\022\014\n\004name\030\001 \001(\t\022"
          + "\021\n\tnamespace\030\002 \001(\t\"}\n\022SecretVolumeSource"
          + "\022\022\n\nsecretName\030\001 \001(\t\022,\n\005items\030\002 \003(\0132\035.k8"
          + "s.io.api.core.v1.KeyToPath\022\023\n\013defaultMod"
          + "e\030\003 \001(\005\022\020\n\010optional\030\004 \001(\010\"\253\002\n\017SecurityCo"
          + "ntext\0226\n\014capabilities\030\001 \001(\0132 .k8s.io.api"
          + ".core.v1.Capabilities\022\022\n\nprivileged\030\002 \001("
          + "\010\022:\n\016seLinuxOptions\030\003 \001(\0132\".k8s.io.api.c"
          + "ore.v1.SELinuxOptions\022\021\n\trunAsUser\030\004 \001(\003"
          + "\022\022\n\nrunAsGroup\030\010 \001(\003\022\024\n\014runAsNonRoot\030\005 \001"
          + "(\010\022\036\n\026readOnlyRootFilesystem\030\006 \001(\010\022 \n\030al"
          + "lowPrivilegeEscalation\030\007 \001(\010\022\021\n\tprocMoun"
          + "t\030\t \001(\t\"M\n\023SerializedReference\0226\n\trefere"
          + "nce\030\001 \001(\0132#.k8s.io.api.core.v1.ObjectRef"
          + "erence\"\257\001\n\007Service\022B\n\010metadata\030\001 \001(\01320.k"
          + "8s.io.apimachinery.pkg.apis.meta.v1.Obje"
          + "ctMeta\022-\n\004spec\030\002 \001(\0132\037.k8s.io.api.core.v"
          + "1.ServiceSpec\0221\n\006status\030\003 \001(\0132!.k8s.io.a"
          + "pi.core.v1.ServiceStatus\"\364\001\n\016ServiceAcco"
          + "unt\022B\n\010metadata\030\001 \001(\01320.k8s.io.apimachin"
          + "ery.pkg.apis.meta.v1.ObjectMeta\0224\n\007secre"
          + "ts\030\002 \003(\0132#.k8s.io.api.core.v1.ObjectRefe"
          + "rence\022B\n\020imagePullSecrets\030\003 \003(\0132(.k8s.io"
          + ".api.core.v1.LocalObjectReference\022$\n\034aut"
          + "omountServiceAccountToken\030\004 \001(\010\"\211\001\n\022Serv"
          + "iceAccountList\022@\n\010metadata\030\001 \001(\0132..k8s.i"
          + "o.apimachinery.pkg.apis.meta.v1.ListMeta"
          + "\0221\n\005items\030\002 \003(\0132\".k8s.io.api.core.v1.Ser"
          + "viceAccount\"Z\n\035ServiceAccountTokenProjec"
          + "tion\022\020\n\010audience\030\001 \001(\t\022\031\n\021expirationSeco"
          + "nds\030\002 \001(\003\022\014\n\004path\030\003 \001(\t\"{\n\013ServiceList\022@"
          + "\n\010metadata\030\001 \001(\0132..k8s.io.apimachinery.p"
          + "kg.apis.meta.v1.ListMeta\022*\n\005items\030\002 \003(\0132"
          + "\033.k8s.io.api.core.v1.Service\"\223\001\n\013Service"
          + "Port\022\014\n\004name\030\001 \001(\t\022\020\n\010protocol\030\002 \001(\t\022\014\n\004"
          + "port\030\003 \001(\005\022D\n\ntargetPort\030\004 \001(\01320.k8s.io."
          + "apimachinery.pkg.util.intstr.IntOrString"
          + "\022\020\n\010nodePort\030\005 \001(\005\"#\n\023ServiceProxyOption"
          + "s\022\014\n\004path\030\001 \001(\t\"\366\003\n\013ServiceSpec\022.\n\005ports"
          + "\030\001 \003(\0132\037.k8s.io.api.core.v1.ServicePort\022"
          + "?\n\010selector\030\002 \003(\0132-.k8s.io.api.core.v1.S"
          + "erviceSpec.SelectorEntry\022\021\n\tclusterIP\030\003 "
          + "\001(\t\022\014\n\004type\030\004 \001(\t\022\023\n\013externalIPs\030\005 \003(\t\022\027"
          + "\n\017sessionAffinity\030\007 \001(\t\022\026\n\016loadBalancerI"
          + "P\030\010 \001(\t\022 \n\030loadBalancerSourceRanges\030\t \003("
          + "\t\022\024\n\014externalName\030\n \001(\t\022\035\n\025externalTraff"
          + "icPolicy\030\013 \001(\t\022\033\n\023healthCheckNodePort\030\014 "
          + "\001(\005\022 \n\030publishNotReadyAddresses\030\r \001(\010\022H\n"
          + "\025sessionAffinityConfig\030\016 \001(\0132).k8s.io.ap"
          + "i.core.v1.SessionAffinityConfig\032/\n\rSelec"
          + "torEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001"
          + "\"M\n\rServiceStatus\022<\n\014loadBalancer\030\001 \001(\0132"
          + "&.k8s.io.api.core.v1.LoadBalancerStatus\""
          + "M\n\025SessionAffinityConfig\0224\n\010clientIP\030\001 \001"
          + "(\0132\".k8s.io.api.core.v1.ClientIPConfig\"\250"
          + "\001\n\037StorageOSPersistentVolumeSource\022\022\n\nvo"
          + "lumeName\030\001 \001(\t\022\027\n\017volumeNamespace\030\002 \001(\t\022"
          + "\016\n\006fsType\030\003 \001(\t\022\020\n\010readOnly\030\004 \001(\010\0226\n\tsec"
          + "retRef\030\005 \001(\0132#.k8s.io.api.core.v1.Object"
          + "Reference\"\243\001\n\025StorageOSVolumeSource\022\022\n\nv"
          + "olumeName\030\001 \001(\t\022\027\n\017volumeNamespace\030\002 \001(\t"
          + "\022\016\n\006fsType\030\003 \001(\t\022\020\n\010readOnly\030\004 \001(\010\022;\n\tse"
          + "cretRef\030\005 \001(\0132(.k8s.io.api.core.v1.Local"
          + "ObjectReference\"%\n\006Sysctl\022\014\n\004name\030\001 \001(\t\022"
          + "\r\n\005value\030\002 \001(\t\"_\n\017TCPSocketAction\022>\n\004por"
          + "t\030\001 \001(\01320.k8s.io.apimachinery.pkg.util.i"
          + "ntstr.IntOrString\022\014\n\004host\030\002 \001(\t\"r\n\005Taint"
          + "\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t\022\016\n\006effect\030\003"
          + " \001(\t\022=\n\ttimeAdded\030\004 \001(\0132*.k8s.io.apimach"
          + "inery.pkg.apis.meta.v1.Time\"e\n\nToleratio"
          + "n\022\013\n\003key\030\001 \001(\t\022\020\n\010operator\030\002 \001(\t\022\r\n\005valu"
          + "e\030\003 \001(\t\022\016\n\006effect\030\004 \001(\t\022\031\n\021tolerationSec"
          + "onds\030\005 \001(\003\"?\n TopologySelectorLabelRequi"
          + "rement\022\013\n\003key\030\001 \001(\t\022\016\n\006values\030\002 \003(\t\"k\n\024T"
          + "opologySelectorTerm\022S\n\025matchLabelExpress"
          + "ions\030\001 \003(\01324.k8s.io.api.core.v1.Topology"
          + "SelectorLabelRequirement\"I\n\031TypedLocalOb",
      "jectReference\022\020\n\010apiGroup\030\001 \001(\t\022\014\n\004kind\030"
          + "\002 \001(\t\022\014\n\004name\030\003 \001(\t\"N\n\006Volume\022\014\n\004name\030\001 "
          + "\001(\t\0226\n\014volumeSource\030\002 \001(\0132 .k8s.io.api.c"
          + "ore.v1.VolumeSource\"0\n\014VolumeDevice\022\014\n\004n"
          + "ame\030\001 \001(\t\022\022\n\ndevicePath\030\002 \001(\t\"k\n\013VolumeM"
          + "ount\022\014\n\004name\030\001 \001(\t\022\020\n\010readOnly\030\002 \001(\010\022\021\n\t"
          + "mountPath\030\003 \001(\t\022\017\n\007subPath\030\004 \001(\t\022\030\n\020moun"
          + "tPropagation\030\005 \001(\t\"H\n\022VolumeNodeAffinity"
          + "\0222\n\010required\030\001 \001(\0132 .k8s.io.api.core.v1."
          + "NodeSelector\"\224\002\n\020VolumeProjection\0224\n\006sec"
          + "ret\030\001 \001(\0132$.k8s.io.api.core.v1.SecretPro"
          + "jection\022>\n\013downwardAPI\030\002 \001(\0132).k8s.io.ap"
          + "i.core.v1.DownwardAPIProjection\022:\n\tconfi"
          + "gMap\030\003 \001(\0132\'.k8s.io.api.core.v1.ConfigMa"
          + "pProjection\022N\n\023serviceAccountToken\030\004 \001(\013"
          + "21.k8s.io.api.core.v1.ServiceAccountToke"
          + "nProjection\"\251\r\n\014VolumeSource\022:\n\010hostPath"
          + "\030\001 \001(\0132(.k8s.io.api.core.v1.HostPathVolu"
          + "meSource\022:\n\010emptyDir\030\002 \001(\0132(.k8s.io.api."
          + "core.v1.EmptyDirVolumeSource\022L\n\021gcePersi"
          + "stentDisk\030\003 \001(\01321.k8s.io.api.core.v1.GCE"
          + "PersistentDiskVolumeSource\022R\n\024awsElastic"
          + "BlockStore\030\004 \001(\01324.k8s.io.api.core.v1.AW"
          + "SElasticBlockStoreVolumeSource\0228\n\007gitRep"
          + "o\030\005 \001(\0132\'.k8s.io.api.core.v1.GitRepoVolu"
          + "meSource\0226\n\006secret\030\006 \001(\0132&.k8s.io.api.co"
          + "re.v1.SecretVolumeSource\0220\n\003nfs\030\007 \001(\0132#."
          + "k8s.io.api.core.v1.NFSVolumeSource\0224\n\005is"
          + "csi\030\010 \001(\0132%.k8s.io.api.core.v1.ISCSIVolu"
          + "meSource\022<\n\tglusterfs\030\t \001(\0132).k8s.io.api"
          + ".core.v1.GlusterfsVolumeSource\022T\n\025persis"
          + "tentVolumeClaim\030\n \001(\01325.k8s.io.api.core."
          + "v1.PersistentVolumeClaimVolumeSource\0220\n\003"
          + "rbd\030\013 \001(\0132#.k8s.io.api.core.v1.RBDVolume"
          + "Source\0228\n\nflexVolume\030\014 \001(\0132$.k8s.io.api."
          + "core.v1.FlexVolumeSource\0226\n\006cinder\030\r \001(\013"
          + "2&.k8s.io.api.core.v1.CinderVolumeSource"
          + "\0226\n\006cephfs\030\016 \001(\0132&.k8s.io.api.core.v1.Ce"
          + "phFSVolumeSource\0228\n\007flocker\030\017 \001(\0132\'.k8s."
          + "io.api.core.v1.FlockerVolumeSource\022@\n\013do"
          + "wnwardAPI\030\020 \001(\0132+.k8s.io.api.core.v1.Dow"
          + "nwardAPIVolumeSource\022.\n\002fc\030\021 \001(\0132\".k8s.i"
          + "o.api.core.v1.FCVolumeSource\022<\n\tazureFil"
          + "e\030\022 \001(\0132).k8s.io.api.core.v1.AzureFileVo"
          + "lumeSource\022<\n\tconfigMap\030\023 \001(\0132).k8s.io.a"
          + "pi.core.v1.ConfigMapVolumeSource\022I\n\rvsph"
          + "ereVolume\030\024 \001(\01322.k8s.io.api.core.v1.Vsp"
          + "hereVirtualDiskVolumeSource\0228\n\007quobyte\030\025"
          + " \001(\0132\'.k8s.io.api.core.v1.QuobyteVolumeS"
          + "ource\022<\n\tazureDisk\030\026 \001(\0132).k8s.io.api.co"
          + "re.v1.AzureDiskVolumeSource\022R\n\024photonPer"
          + "sistentDisk\030\027 \001(\01324.k8s.io.api.core.v1.P"
          + "hotonPersistentDiskVolumeSource\022<\n\tproje"
          + "cted\030\032 \001(\0132).k8s.io.api.core.v1.Projecte"
          + "dVolumeSource\022@\n\016portworxVolume\030\030 \001(\0132(."
          + "k8s.io.api.core.v1.PortworxVolumeSource\022"
          + "8\n\007scaleIO\030\031 \001(\0132\'.k8s.io.api.core.v1.Sc"
          + "aleIOVolumeSource\022<\n\tstorageos\030\033 \001(\0132).k"
          + "8s.io.api.core.v1.StorageOSVolumeSource\""
          + "x\n\036VsphereVirtualDiskVolumeSource\022\022\n\nvol"
          + "umePath\030\001 \001(\t\022\016\n\006fsType\030\002 \001(\t\022\031\n\021storage"
          + "PolicyName\030\003 \001(\t\022\027\n\017storagePolicyID\030\004 \001("
          + "\t\"g\n\027WeightedPodAffinityTerm\022\016\n\006weight\030\001"
          + " \001(\005\022<\n\017podAffinityTerm\030\002 \001(\0132#.k8s.io.a"
          + "pi.core.v1.PodAffinityTermB$\n\032io.kuberne"
          + "tes.client.protoB\002V1Z\002v1"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(
        descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          io.kubernetes.client.proto.Resource.getDescriptor(),
          io.kubernetes.client.proto.Meta.getDescriptor(),
          io.kubernetes.client.proto.Runtime.getDescriptor(),
          io.kubernetes.client.proto.RuntimeSchema.getDescriptor(),
          io.kubernetes.client.proto.IntStr.getDescriptor(),
        },
        assigner);
    internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(0);
    internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AWSElasticBlockStoreVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeID", "FsType", "Partition", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_Affinity_descriptor =
        getDescriptor().getMessageTypes().get(1);
    internal_static_k8s_io_api_core_v1_Affinity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Affinity_descriptor,
            new java.lang.String[] {
              "NodeAffinity", "PodAffinity", "PodAntiAffinity",
            });
    internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor =
        getDescriptor().getMessageTypes().get(2);
    internal_static_k8s_io_api_core_v1_AttachedVolume_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AttachedVolume_descriptor,
            new java.lang.String[] {
              "Name", "DevicePath",
            });
    internal_static_k8s_io_api_core_v1_AvoidPods_descriptor =
        getDescriptor().getMessageTypes().get(3);
    internal_static_k8s_io_api_core_v1_AvoidPods_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AvoidPods_descriptor,
            new java.lang.String[] {
              "PreferAvoidPods",
            });
    internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(4);
    internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AzureDiskVolumeSource_descriptor,
            new java.lang.String[] {
              "DiskName", "DiskURI", "CachingMode", "FsType", "ReadOnly", "Kind",
            });
    internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(5);
    internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AzureFilePersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "SecretName", "ShareName", "ReadOnly", "SecretNamespace",
            });
    internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(6);
    internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_AzureFileVolumeSource_descriptor,
            new java.lang.String[] {
              "SecretName", "ShareName", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_Binding_descriptor =
        getDescriptor().getMessageTypes().get(7);
    internal_static_k8s_io_api_core_v1_Binding_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Binding_descriptor,
            new java.lang.String[] {
              "Metadata", "Target",
            });
    internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(8);
    internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Driver",
              "VolumeHandle",
              "ReadOnly",
              "FsType",
              "VolumeAttributes",
              "ControllerPublishSecretRef",
              "NodeStageSecretRef",
              "NodePublishSecretRef",
            });
    internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_descriptor =
        internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CSIPersistentVolumeSource_VolumeAttributesEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_Capabilities_descriptor =
        getDescriptor().getMessageTypes().get(9);
    internal_static_k8s_io_api_core_v1_Capabilities_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Capabilities_descriptor,
            new java.lang.String[] {
              "Add", "Drop",
            });
    internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(10);
    internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CephFSPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Monitors", "Path", "User", "SecretFile", "SecretRef", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(11);
    internal_static_k8s_io_api_core_v1_CephFSVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CephFSVolumeSource_descriptor,
            new java.lang.String[] {
              "Monitors", "Path", "User", "SecretFile", "SecretRef", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(12);
    internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CinderPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeID", "FsType", "ReadOnly", "SecretRef",
            });
    internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(13);
    internal_static_k8s_io_api_core_v1_CinderVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_CinderVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeID", "FsType", "ReadOnly", "SecretRef",
            });
    internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor =
        getDescriptor().getMessageTypes().get(14);
    internal_static_k8s_io_api_core_v1_ClientIPConfig_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ClientIPConfig_descriptor,
            new java.lang.String[] {
              "TimeoutSeconds",
            });
    internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor =
        getDescriptor().getMessageTypes().get(15);
    internal_static_k8s_io_api_core_v1_ComponentCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ComponentCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "Message", "Error",
            });
    internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor =
        getDescriptor().getMessageTypes().get(16);
    internal_static_k8s_io_api_core_v1_ComponentStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ComponentStatus_descriptor,
            new java.lang.String[] {
              "Metadata", "Conditions",
            });
    internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor =
        getDescriptor().getMessageTypes().get(17);
    internal_static_k8s_io_api_core_v1_ComponentStatusList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ComponentStatusList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ConfigMap_descriptor =
        getDescriptor().getMessageTypes().get(18);
    internal_static_k8s_io_api_core_v1_ConfigMap_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMap_descriptor,
            new java.lang.String[] {
              "Metadata", "Data", "BinaryData",
            });
    internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ConfigMap_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMap_DataEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ConfigMap_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMap_BinaryDataEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor =
        getDescriptor().getMessageTypes().get(19);
    internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapEnvSource_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Optional",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor =
        getDescriptor().getMessageTypes().get(20);
    internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapKeySelector_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Key", "Optional",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor =
        getDescriptor().getMessageTypes().get(21);
    internal_static_k8s_io_api_core_v1_ConfigMapList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor =
        getDescriptor().getMessageTypes().get(22);
    internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapNodeConfigSource_descriptor,
            new java.lang.String[] {
              "Namespace", "Name", "Uid", "ResourceVersion", "KubeletConfigKey",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor =
        getDescriptor().getMessageTypes().get(23);
    internal_static_k8s_io_api_core_v1_ConfigMapProjection_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapProjection_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Items", "Optional",
            });
    internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(24);
    internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ConfigMapVolumeSource_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Items", "DefaultMode", "Optional",
            });
    internal_static_k8s_io_api_core_v1_Container_descriptor =
        getDescriptor().getMessageTypes().get(25);
    internal_static_k8s_io_api_core_v1_Container_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Container_descriptor,
            new java.lang.String[] {
              "Name",
              "Image",
              "Command",
              "Args",
              "WorkingDir",
              "Ports",
              "EnvFrom",
              "Env",
              "Resources",
              "VolumeMounts",
              "VolumeDevices",
              "LivenessProbe",
              "ReadinessProbe",
              "Lifecycle",
              "TerminationMessagePath",
              "TerminationMessagePolicy",
              "ImagePullPolicy",
              "SecurityContext",
              "Stdin",
              "StdinOnce",
              "Tty",
            });
    internal_static_k8s_io_api_core_v1_ContainerImage_descriptor =
        getDescriptor().getMessageTypes().get(26);
    internal_static_k8s_io_api_core_v1_ContainerImage_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerImage_descriptor,
            new java.lang.String[] {
              "Names", "SizeBytes",
            });
    internal_static_k8s_io_api_core_v1_ContainerPort_descriptor =
        getDescriptor().getMessageTypes().get(27);
    internal_static_k8s_io_api_core_v1_ContainerPort_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerPort_descriptor,
            new java.lang.String[] {
              "Name", "HostPort", "ContainerPort", "Protocol", "HostIP",
            });
    internal_static_k8s_io_api_core_v1_ContainerState_descriptor =
        getDescriptor().getMessageTypes().get(28);
    internal_static_k8s_io_api_core_v1_ContainerState_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerState_descriptor,
            new java.lang.String[] {
              "Waiting", "Running", "Terminated",
            });
    internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor =
        getDescriptor().getMessageTypes().get(29);
    internal_static_k8s_io_api_core_v1_ContainerStateRunning_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerStateRunning_descriptor,
            new java.lang.String[] {
              "StartedAt",
            });
    internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor =
        getDescriptor().getMessageTypes().get(30);
    internal_static_k8s_io_api_core_v1_ContainerStateTerminated_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerStateTerminated_descriptor,
            new java.lang.String[] {
              "ExitCode", "Signal", "Reason", "Message", "StartedAt", "FinishedAt", "ContainerID",
            });
    internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor =
        getDescriptor().getMessageTypes().get(31);
    internal_static_k8s_io_api_core_v1_ContainerStateWaiting_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerStateWaiting_descriptor,
            new java.lang.String[] {
              "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor =
        getDescriptor().getMessageTypes().get(32);
    internal_static_k8s_io_api_core_v1_ContainerStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ContainerStatus_descriptor,
            new java.lang.String[] {
              "Name",
              "State",
              "LastState",
              "Ready",
              "RestartCount",
              "Image",
              "ImageID",
              "ContainerID",
            });
    internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor =
        getDescriptor().getMessageTypes().get(33);
    internal_static_k8s_io_api_core_v1_DaemonEndpoint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_DaemonEndpoint_descriptor,
            new java.lang.String[] {
              "Port",
            });
    internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor =
        getDescriptor().getMessageTypes().get(34);
    internal_static_k8s_io_api_core_v1_DownwardAPIProjection_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_DownwardAPIProjection_descriptor,
            new java.lang.String[] {
              "Items",
            });
    internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor =
        getDescriptor().getMessageTypes().get(35);
    internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_DownwardAPIVolumeFile_descriptor,
            new java.lang.String[] {
              "Path", "FieldRef", "ResourceFieldRef", "Mode",
            });
    internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(36);
    internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_DownwardAPIVolumeSource_descriptor,
            new java.lang.String[] {
              "Items", "DefaultMode",
            });
    internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(37);
    internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EmptyDirVolumeSource_descriptor,
            new java.lang.String[] {
              "Medium", "SizeLimit",
            });
    internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor =
        getDescriptor().getMessageTypes().get(38);
    internal_static_k8s_io_api_core_v1_EndpointAddress_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EndpointAddress_descriptor,
            new java.lang.String[] {
              "Ip", "Hostname", "NodeName", "TargetRef",
            });
    internal_static_k8s_io_api_core_v1_EndpointPort_descriptor =
        getDescriptor().getMessageTypes().get(39);
    internal_static_k8s_io_api_core_v1_EndpointPort_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EndpointPort_descriptor,
            new java.lang.String[] {
              "Name", "Port", "Protocol",
            });
    internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor =
        getDescriptor().getMessageTypes().get(40);
    internal_static_k8s_io_api_core_v1_EndpointSubset_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EndpointSubset_descriptor,
            new java.lang.String[] {
              "Addresses", "NotReadyAddresses", "Ports",
            });
    internal_static_k8s_io_api_core_v1_Endpoints_descriptor =
        getDescriptor().getMessageTypes().get(41);
    internal_static_k8s_io_api_core_v1_Endpoints_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Endpoints_descriptor,
            new java.lang.String[] {
              "Metadata", "Subsets",
            });
    internal_static_k8s_io_api_core_v1_EndpointsList_descriptor =
        getDescriptor().getMessageTypes().get(42);
    internal_static_k8s_io_api_core_v1_EndpointsList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EndpointsList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor =
        getDescriptor().getMessageTypes().get(43);
    internal_static_k8s_io_api_core_v1_EnvFromSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EnvFromSource_descriptor,
            new java.lang.String[] {
              "Prefix", "ConfigMapRef", "SecretRef",
            });
    internal_static_k8s_io_api_core_v1_EnvVar_descriptor =
        getDescriptor().getMessageTypes().get(44);
    internal_static_k8s_io_api_core_v1_EnvVar_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EnvVar_descriptor,
            new java.lang.String[] {
              "Name", "Value", "ValueFrom",
            });
    internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor =
        getDescriptor().getMessageTypes().get(45);
    internal_static_k8s_io_api_core_v1_EnvVarSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EnvVarSource_descriptor,
            new java.lang.String[] {
              "FieldRef", "ResourceFieldRef", "ConfigMapKeyRef", "SecretKeyRef",
            });
    internal_static_k8s_io_api_core_v1_Event_descriptor = getDescriptor().getMessageTypes().get(46);
    internal_static_k8s_io_api_core_v1_Event_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Event_descriptor,
            new java.lang.String[] {
              "Metadata",
              "InvolvedObject",
              "Reason",
              "Message",
              "Source",
              "FirstTimestamp",
              "LastTimestamp",
              "Count",
              "Type",
              "EventTime",
              "Series",
              "Action",
              "Related",
              "ReportingComponent",
              "ReportingInstance",
            });
    internal_static_k8s_io_api_core_v1_EventList_descriptor =
        getDescriptor().getMessageTypes().get(47);
    internal_static_k8s_io_api_core_v1_EventList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EventList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_EventSeries_descriptor =
        getDescriptor().getMessageTypes().get(48);
    internal_static_k8s_io_api_core_v1_EventSeries_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EventSeries_descriptor,
            new java.lang.String[] {
              "Count", "LastObservedTime", "State",
            });
    internal_static_k8s_io_api_core_v1_EventSource_descriptor =
        getDescriptor().getMessageTypes().get(49);
    internal_static_k8s_io_api_core_v1_EventSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_EventSource_descriptor,
            new java.lang.String[] {
              "Component", "Host",
            });
    internal_static_k8s_io_api_core_v1_ExecAction_descriptor =
        getDescriptor().getMessageTypes().get(50);
    internal_static_k8s_io_api_core_v1_ExecAction_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ExecAction_descriptor,
            new java.lang.String[] {
              "Command",
            });
    internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(51);
    internal_static_k8s_io_api_core_v1_FCVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FCVolumeSource_descriptor,
            new java.lang.String[] {
              "TargetWWNs", "Lun", "FsType", "ReadOnly", "Wwids",
            });
    internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(52);
    internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Driver", "FsType", "SecretRef", "ReadOnly", "Options",
            });
    internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_descriptor =
        internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FlexPersistentVolumeSource_OptionsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(53);
    internal_static_k8s_io_api_core_v1_FlexVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor,
            new java.lang.String[] {
              "Driver", "FsType", "SecretRef", "ReadOnly", "Options",
            });
    internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_descriptor =
        internal_static_k8s_io_api_core_v1_FlexVolumeSource_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FlexVolumeSource_OptionsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(54);
    internal_static_k8s_io_api_core_v1_FlockerVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_FlockerVolumeSource_descriptor,
            new java.lang.String[] {
              "DatasetName", "DatasetUUID",
            });
    internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(55);
    internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_GCEPersistentDiskVolumeSource_descriptor,
            new java.lang.String[] {
              "PdName", "FsType", "Partition", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(56);
    internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_GitRepoVolumeSource_descriptor,
            new java.lang.String[] {
              "Repository", "Revision", "Directory",
            });
    internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(57);
    internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_GlusterfsPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Endpoints", "Path", "ReadOnly", "EndpointsNamespace",
            });
    internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(58);
    internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_GlusterfsVolumeSource_descriptor,
            new java.lang.String[] {
              "Endpoints", "Path", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor =
        getDescriptor().getMessageTypes().get(59);
    internal_static_k8s_io_api_core_v1_HTTPGetAction_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_HTTPGetAction_descriptor,
            new java.lang.String[] {
              "Path", "Port", "Host", "Scheme", "HttpHeaders",
            });
    internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor =
        getDescriptor().getMessageTypes().get(60);
    internal_static_k8s_io_api_core_v1_HTTPHeader_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_HTTPHeader_descriptor,
            new java.lang.String[] {
              "Name", "Value",
            });
    internal_static_k8s_io_api_core_v1_Handler_descriptor =
        getDescriptor().getMessageTypes().get(61);
    internal_static_k8s_io_api_core_v1_Handler_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Handler_descriptor,
            new java.lang.String[] {
              "Exec", "HttpGet", "TcpSocket",
            });
    internal_static_k8s_io_api_core_v1_HostAlias_descriptor =
        getDescriptor().getMessageTypes().get(62);
    internal_static_k8s_io_api_core_v1_HostAlias_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_HostAlias_descriptor,
            new java.lang.String[] {
              "Ip", "Hostnames",
            });
    internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(63);
    internal_static_k8s_io_api_core_v1_HostPathVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_HostPathVolumeSource_descriptor,
            new java.lang.String[] {
              "Path", "Type",
            });
    internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(64);
    internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ISCSIPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "TargetPortal",
              "Iqn",
              "Lun",
              "IscsiInterface",
              "FsType",
              "ReadOnly",
              "Portals",
              "ChapAuthDiscovery",
              "ChapAuthSession",
              "SecretRef",
              "InitiatorName",
            });
    internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(65);
    internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ISCSIVolumeSource_descriptor,
            new java.lang.String[] {
              "TargetPortal",
              "Iqn",
              "Lun",
              "IscsiInterface",
              "FsType",
              "ReadOnly",
              "Portals",
              "ChapAuthDiscovery",
              "ChapAuthSession",
              "SecretRef",
              "InitiatorName",
            });
    internal_static_k8s_io_api_core_v1_KeyToPath_descriptor =
        getDescriptor().getMessageTypes().get(66);
    internal_static_k8s_io_api_core_v1_KeyToPath_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_KeyToPath_descriptor,
            new java.lang.String[] {
              "Key", "Path", "Mode",
            });
    internal_static_k8s_io_api_core_v1_Lifecycle_descriptor =
        getDescriptor().getMessageTypes().get(67);
    internal_static_k8s_io_api_core_v1_Lifecycle_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Lifecycle_descriptor,
            new java.lang.String[] {
              "PostStart", "PreStop",
            });
    internal_static_k8s_io_api_core_v1_LimitRange_descriptor =
        getDescriptor().getMessageTypes().get(68);
    internal_static_k8s_io_api_core_v1_LimitRange_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRange_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor =
        getDescriptor().getMessageTypes().get(69);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor,
            new java.lang.String[] {
              "Type", "Max", "Min", "Default", "DefaultRequest", "MaxLimitRequestRatio",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_descriptor =
        internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_descriptor =
        internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_MinEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_descriptor =
        internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor.getNestedTypes().get(2);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_descriptor =
        internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor.getNestedTypes().get(3);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_DefaultRequestEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_descriptor =
        internal_static_k8s_io_api_core_v1_LimitRangeItem_descriptor.getNestedTypes().get(4);
    internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeItem_MaxLimitRequestRatioEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor =
        getDescriptor().getMessageTypes().get(70);
    internal_static_k8s_io_api_core_v1_LimitRangeList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor =
        getDescriptor().getMessageTypes().get(71);
    internal_static_k8s_io_api_core_v1_LimitRangeSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LimitRangeSpec_descriptor,
            new java.lang.String[] {
              "Limits",
            });
    internal_static_k8s_io_api_core_v1_List_descriptor = getDescriptor().getMessageTypes().get(72);
    internal_static_k8s_io_api_core_v1_List_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_List_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor =
        getDescriptor().getMessageTypes().get(73);
    internal_static_k8s_io_api_core_v1_LoadBalancerIngress_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LoadBalancerIngress_descriptor,
            new java.lang.String[] {
              "Ip", "Hostname",
            });
    internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor =
        getDescriptor().getMessageTypes().get(74);
    internal_static_k8s_io_api_core_v1_LoadBalancerStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LoadBalancerStatus_descriptor,
            new java.lang.String[] {
              "Ingress",
            });
    internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor =
        getDescriptor().getMessageTypes().get(75);
    internal_static_k8s_io_api_core_v1_LocalObjectReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LocalObjectReference_descriptor,
            new java.lang.String[] {
              "Name",
            });
    internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(76);
    internal_static_k8s_io_api_core_v1_LocalVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_LocalVolumeSource_descriptor,
            new java.lang.String[] {
              "Path", "FsType",
            });
    internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(77);
    internal_static_k8s_io_api_core_v1_NFSVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NFSVolumeSource_descriptor,
            new java.lang.String[] {
              "Server", "Path", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_Namespace_descriptor =
        getDescriptor().getMessageTypes().get(78);
    internal_static_k8s_io_api_core_v1_Namespace_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Namespace_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_NamespaceList_descriptor =
        getDescriptor().getMessageTypes().get(79);
    internal_static_k8s_io_api_core_v1_NamespaceList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NamespaceList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor =
        getDescriptor().getMessageTypes().get(80);
    internal_static_k8s_io_api_core_v1_NamespaceSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NamespaceSpec_descriptor,
            new java.lang.String[] {
              "Finalizers",
            });
    internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor =
        getDescriptor().getMessageTypes().get(81);
    internal_static_k8s_io_api_core_v1_NamespaceStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NamespaceStatus_descriptor,
            new java.lang.String[] {
              "Phase",
            });
    internal_static_k8s_io_api_core_v1_Node_descriptor = getDescriptor().getMessageTypes().get(82);
    internal_static_k8s_io_api_core_v1_Node_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Node_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_NodeAddress_descriptor =
        getDescriptor().getMessageTypes().get(83);
    internal_static_k8s_io_api_core_v1_NodeAddress_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeAddress_descriptor,
            new java.lang.String[] {
              "Type", "Address",
            });
    internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor =
        getDescriptor().getMessageTypes().get(84);
    internal_static_k8s_io_api_core_v1_NodeAffinity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeAffinity_descriptor,
            new java.lang.String[] {
              "RequiredDuringSchedulingIgnoredDuringExecution",
              "PreferredDuringSchedulingIgnoredDuringExecution",
            });
    internal_static_k8s_io_api_core_v1_NodeCondition_descriptor =
        getDescriptor().getMessageTypes().get(85);
    internal_static_k8s_io_api_core_v1_NodeCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "LastHeartbeatTime", "LastTransitionTime", "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor =
        getDescriptor().getMessageTypes().get(86);
    internal_static_k8s_io_api_core_v1_NodeConfigSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeConfigSource_descriptor,
            new java.lang.String[] {
              "ConfigMap",
            });
    internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor =
        getDescriptor().getMessageTypes().get(87);
    internal_static_k8s_io_api_core_v1_NodeConfigStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeConfigStatus_descriptor,
            new java.lang.String[] {
              "Assigned", "Active", "LastKnownGood", "Error",
            });
    internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor =
        getDescriptor().getMessageTypes().get(88);
    internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeDaemonEndpoints_descriptor,
            new java.lang.String[] {
              "KubeletEndpoint",
            });
    internal_static_k8s_io_api_core_v1_NodeList_descriptor =
        getDescriptor().getMessageTypes().get(89);
    internal_static_k8s_io_api_core_v1_NodeList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor =
        getDescriptor().getMessageTypes().get(90);
    internal_static_k8s_io_api_core_v1_NodeProxyOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeProxyOptions_descriptor,
            new java.lang.String[] {
              "Path",
            });
    internal_static_k8s_io_api_core_v1_NodeResources_descriptor =
        getDescriptor().getMessageTypes().get(91);
    internal_static_k8s_io_api_core_v1_NodeResources_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeResources_descriptor,
            new java.lang.String[] {
              "Capacity",
            });
    internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_descriptor =
        internal_static_k8s_io_api_core_v1_NodeResources_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeResources_CapacityEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_NodeSelector_descriptor =
        getDescriptor().getMessageTypes().get(92);
    internal_static_k8s_io_api_core_v1_NodeSelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeSelector_descriptor,
            new java.lang.String[] {
              "NodeSelectorTerms",
            });
    internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor =
        getDescriptor().getMessageTypes().get(93);
    internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeSelectorRequirement_descriptor,
            new java.lang.String[] {
              "Key", "Operator", "Values",
            });
    internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor =
        getDescriptor().getMessageTypes().get(94);
    internal_static_k8s_io_api_core_v1_NodeSelectorTerm_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeSelectorTerm_descriptor,
            new java.lang.String[] {
              "MatchExpressions", "MatchFields",
            });
    internal_static_k8s_io_api_core_v1_NodeSpec_descriptor =
        getDescriptor().getMessageTypes().get(95);
    internal_static_k8s_io_api_core_v1_NodeSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeSpec_descriptor,
            new java.lang.String[] {
              "PodCIDR", "ProviderID", "Unschedulable", "Taints", "ConfigSource", "ExternalID",
            });
    internal_static_k8s_io_api_core_v1_NodeStatus_descriptor =
        getDescriptor().getMessageTypes().get(96);
    internal_static_k8s_io_api_core_v1_NodeStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeStatus_descriptor,
            new java.lang.String[] {
              "Capacity",
              "Allocatable",
              "Phase",
              "Conditions",
              "Addresses",
              "DaemonEndpoints",
              "NodeInfo",
              "Images",
              "VolumesInUse",
              "VolumesAttached",
              "Config",
            });
    internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_descriptor =
        internal_static_k8s_io_api_core_v1_NodeStatus_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeStatus_CapacityEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_descriptor =
        internal_static_k8s_io_api_core_v1_NodeStatus_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeStatus_AllocatableEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor =
        getDescriptor().getMessageTypes().get(97);
    internal_static_k8s_io_api_core_v1_NodeSystemInfo_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_NodeSystemInfo_descriptor,
            new java.lang.String[] {
              "MachineID",
              "SystemUUID",
              "BootID",
              "KernelVersion",
              "OsImage",
              "ContainerRuntimeVersion",
              "KubeletVersion",
              "KubeProxyVersion",
              "OperatingSystem",
              "Architecture",
            });
    internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor =
        getDescriptor().getMessageTypes().get(98);
    internal_static_k8s_io_api_core_v1_ObjectFieldSelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ObjectFieldSelector_descriptor,
            new java.lang.String[] {
              "ApiVersion", "FieldPath",
            });
    internal_static_k8s_io_api_core_v1_ObjectReference_descriptor =
        getDescriptor().getMessageTypes().get(99);
    internal_static_k8s_io_api_core_v1_ObjectReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ObjectReference_descriptor,
            new java.lang.String[] {
              "Kind", "Namespace", "Name", "Uid", "ApiVersion", "ResourceVersion", "FieldPath",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor =
        getDescriptor().getMessageTypes().get(100);
    internal_static_k8s_io_api_core_v1_PersistentVolume_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolume_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor =
        getDescriptor().getMessageTypes().get(101);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaim_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor =
        getDescriptor().getMessageTypes().get(102);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "LastProbeTime", "LastTransitionTime", "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor =
        getDescriptor().getMessageTypes().get(103);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor =
        getDescriptor().getMessageTypes().get(104);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimSpec_descriptor,
            new java.lang.String[] {
              "AccessModes",
              "Selector",
              "Resources",
              "VolumeName",
              "StorageClassName",
              "VolumeMode",
              "DataSource",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor =
        getDescriptor().getMessageTypes().get(105);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor,
            new java.lang.String[] {
              "Phase", "AccessModes", "Capacity", "Conditions",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_descriptor =
        internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimStatus_CapacityEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(106);
    internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeClaimVolumeSource_descriptor,
            new java.lang.String[] {
              "ClaimName", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor =
        getDescriptor().getMessageTypes().get(107);
    internal_static_k8s_io_api_core_v1_PersistentVolumeList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(108);
    internal_static_k8s_io_api_core_v1_PersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "GcePersistentDisk",
              "AwsElasticBlockStore",
              "HostPath",
              "Glusterfs",
              "Nfs",
              "Rbd",
              "Iscsi",
              "Cinder",
              "Cephfs",
              "Fc",
              "Flocker",
              "FlexVolume",
              "AzureFile",
              "VsphereVolume",
              "Quobyte",
              "AzureDisk",
              "PhotonPersistentDisk",
              "PortworxVolume",
              "ScaleIO",
              "Local",
              "Storageos",
              "Csi",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor =
        getDescriptor().getMessageTypes().get(109);
    internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor,
            new java.lang.String[] {
              "Capacity",
              "PersistentVolumeSource",
              "AccessModes",
              "ClaimRef",
              "PersistentVolumeReclaimPolicy",
              "StorageClassName",
              "MountOptions",
              "VolumeMode",
              "NodeAffinity",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_descriptor =
        internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeSpec_CapacityEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor =
        getDescriptor().getMessageTypes().get(110);
    internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PersistentVolumeStatus_descriptor,
            new java.lang.String[] {
              "Phase", "Message", "Reason",
            });
    internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(111);
    internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PhotonPersistentDiskVolumeSource_descriptor,
            new java.lang.String[] {
              "PdID", "FsType",
            });
    internal_static_k8s_io_api_core_v1_Pod_descriptor = getDescriptor().getMessageTypes().get(112);
    internal_static_k8s_io_api_core_v1_Pod_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Pod_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_PodAffinity_descriptor =
        getDescriptor().getMessageTypes().get(113);
    internal_static_k8s_io_api_core_v1_PodAffinity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodAffinity_descriptor,
            new java.lang.String[] {
              "RequiredDuringSchedulingIgnoredDuringExecution",
              "PreferredDuringSchedulingIgnoredDuringExecution",
            });
    internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor =
        getDescriptor().getMessageTypes().get(114);
    internal_static_k8s_io_api_core_v1_PodAffinityTerm_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodAffinityTerm_descriptor,
            new java.lang.String[] {
              "LabelSelector", "Namespaces", "TopologyKey",
            });
    internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor =
        getDescriptor().getMessageTypes().get(115);
    internal_static_k8s_io_api_core_v1_PodAntiAffinity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodAntiAffinity_descriptor,
            new java.lang.String[] {
              "RequiredDuringSchedulingIgnoredDuringExecution",
              "PreferredDuringSchedulingIgnoredDuringExecution",
            });
    internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor =
        getDescriptor().getMessageTypes().get(116);
    internal_static_k8s_io_api_core_v1_PodAttachOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodAttachOptions_descriptor,
            new java.lang.String[] {
              "Stdin", "Stdout", "Stderr", "Tty", "Container",
            });
    internal_static_k8s_io_api_core_v1_PodCondition_descriptor =
        getDescriptor().getMessageTypes().get(117);
    internal_static_k8s_io_api_core_v1_PodCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "LastProbeTime", "LastTransitionTime", "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor =
        getDescriptor().getMessageTypes().get(118);
    internal_static_k8s_io_api_core_v1_PodDNSConfig_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodDNSConfig_descriptor,
            new java.lang.String[] {
              "Nameservers", "Searches", "Options",
            });
    internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor =
        getDescriptor().getMessageTypes().get(119);
    internal_static_k8s_io_api_core_v1_PodDNSConfigOption_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodDNSConfigOption_descriptor,
            new java.lang.String[] {
              "Name", "Value",
            });
    internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor =
        getDescriptor().getMessageTypes().get(120);
    internal_static_k8s_io_api_core_v1_PodExecOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodExecOptions_descriptor,
            new java.lang.String[] {
              "Stdin", "Stdout", "Stderr", "Tty", "Container", "Command",
            });
    internal_static_k8s_io_api_core_v1_PodList_descriptor =
        getDescriptor().getMessageTypes().get(121);
    internal_static_k8s_io_api_core_v1_PodList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor =
        getDescriptor().getMessageTypes().get(122);
    internal_static_k8s_io_api_core_v1_PodLogOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodLogOptions_descriptor,
            new java.lang.String[] {
              "Container",
              "Follow",
              "Previous",
              "SinceSeconds",
              "SinceTime",
              "Timestamps",
              "TailLines",
              "LimitBytes",
            });
    internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor =
        getDescriptor().getMessageTypes().get(123);
    internal_static_k8s_io_api_core_v1_PodPortForwardOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodPortForwardOptions_descriptor,
            new java.lang.String[] {
              "Ports",
            });
    internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor =
        getDescriptor().getMessageTypes().get(124);
    internal_static_k8s_io_api_core_v1_PodProxyOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodProxyOptions_descriptor,
            new java.lang.String[] {
              "Path",
            });
    internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor =
        getDescriptor().getMessageTypes().get(125);
    internal_static_k8s_io_api_core_v1_PodReadinessGate_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodReadinessGate_descriptor,
            new java.lang.String[] {
              "ConditionType",
            });
    internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor =
        getDescriptor().getMessageTypes().get(126);
    internal_static_k8s_io_api_core_v1_PodSecurityContext_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodSecurityContext_descriptor,
            new java.lang.String[] {
              "SeLinuxOptions",
              "RunAsUser",
              "RunAsGroup",
              "RunAsNonRoot",
              "SupplementalGroups",
              "FsGroup",
              "Sysctls",
            });
    internal_static_k8s_io_api_core_v1_PodSignature_descriptor =
        getDescriptor().getMessageTypes().get(127);
    internal_static_k8s_io_api_core_v1_PodSignature_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodSignature_descriptor,
            new java.lang.String[] {
              "PodController",
            });
    internal_static_k8s_io_api_core_v1_PodSpec_descriptor =
        getDescriptor().getMessageTypes().get(128);
    internal_static_k8s_io_api_core_v1_PodSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodSpec_descriptor,
            new java.lang.String[] {
              "Volumes",
              "InitContainers",
              "Containers",
              "RestartPolicy",
              "TerminationGracePeriodSeconds",
              "ActiveDeadlineSeconds",
              "DnsPolicy",
              "NodeSelector",
              "ServiceAccountName",
              "ServiceAccount",
              "AutomountServiceAccountToken",
              "NodeName",
              "HostNetwork",
              "HostPID",
              "HostIPC",
              "ShareProcessNamespace",
              "SecurityContext",
              "ImagePullSecrets",
              "Hostname",
              "Subdomain",
              "Affinity",
              "SchedulerName",
              "Tolerations",
              "HostAliases",
              "PriorityClassName",
              "Priority",
              "DnsConfig",
              "ReadinessGates",
              "RuntimeClassName",
              "EnableServiceLinks",
            });
    internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_descriptor =
        internal_static_k8s_io_api_core_v1_PodSpec_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodSpec_NodeSelectorEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_PodStatus_descriptor =
        getDescriptor().getMessageTypes().get(129);
    internal_static_k8s_io_api_core_v1_PodStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodStatus_descriptor,
            new java.lang.String[] {
              "Phase",
              "Conditions",
              "Message",
              "Reason",
              "NominatedNodeName",
              "HostIP",
              "PodIP",
              "StartTime",
              "InitContainerStatuses",
              "ContainerStatuses",
              "QosClass",
            });
    internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor =
        getDescriptor().getMessageTypes().get(130);
    internal_static_k8s_io_api_core_v1_PodStatusResult_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodStatusResult_descriptor,
            new java.lang.String[] {
              "Metadata", "Status",
            });
    internal_static_k8s_io_api_core_v1_PodTemplate_descriptor =
        getDescriptor().getMessageTypes().get(131);
    internal_static_k8s_io_api_core_v1_PodTemplate_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodTemplate_descriptor,
            new java.lang.String[] {
              "Metadata", "Template",
            });
    internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor =
        getDescriptor().getMessageTypes().get(132);
    internal_static_k8s_io_api_core_v1_PodTemplateList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodTemplateList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor =
        getDescriptor().getMessageTypes().get(133);
    internal_static_k8s_io_api_core_v1_PodTemplateSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PodTemplateSpec_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec",
            });
    internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(134);
    internal_static_k8s_io_api_core_v1_PortworxVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PortworxVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeID", "FsType", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_Preconditions_descriptor =
        getDescriptor().getMessageTypes().get(135);
    internal_static_k8s_io_api_core_v1_Preconditions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Preconditions_descriptor,
            new java.lang.String[] {
              "Uid",
            });
    internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor =
        getDescriptor().getMessageTypes().get(136);
    internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PreferAvoidPodsEntry_descriptor,
            new java.lang.String[] {
              "PodSignature", "EvictionTime", "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor =
        getDescriptor().getMessageTypes().get(137);
    internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_PreferredSchedulingTerm_descriptor,
            new java.lang.String[] {
              "Weight", "Preference",
            });
    internal_static_k8s_io_api_core_v1_Probe_descriptor =
        getDescriptor().getMessageTypes().get(138);
    internal_static_k8s_io_api_core_v1_Probe_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Probe_descriptor,
            new java.lang.String[] {
              "Handler",
              "InitialDelaySeconds",
              "TimeoutSeconds",
              "PeriodSeconds",
              "SuccessThreshold",
              "FailureThreshold",
            });
    internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(139);
    internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ProjectedVolumeSource_descriptor,
            new java.lang.String[] {
              "Sources", "DefaultMode",
            });
    internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(140);
    internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_QuobyteVolumeSource_descriptor,
            new java.lang.String[] {
              "Registry", "Volume", "ReadOnly", "User", "Group",
            });
    internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(141);
    internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_RBDPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Monitors", "Image", "FsType", "Pool", "User", "Keyring", "SecretRef", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(142);
    internal_static_k8s_io_api_core_v1_RBDVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_RBDVolumeSource_descriptor,
            new java.lang.String[] {
              "Monitors", "Image", "FsType", "Pool", "User", "Keyring", "SecretRef", "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor =
        getDescriptor().getMessageTypes().get(143);
    internal_static_k8s_io_api_core_v1_RangeAllocation_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_RangeAllocation_descriptor,
            new java.lang.String[] {
              "Metadata", "Range", "Data",
            });
    internal_static_k8s_io_api_core_v1_ReplicationController_descriptor =
        getDescriptor().getMessageTypes().get(144);
    internal_static_k8s_io_api_core_v1_ReplicationController_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationController_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor =
        getDescriptor().getMessageTypes().get(145);
    internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationControllerCondition_descriptor,
            new java.lang.String[] {
              "Type", "Status", "LastTransitionTime", "Reason", "Message",
            });
    internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor =
        getDescriptor().getMessageTypes().get(146);
    internal_static_k8s_io_api_core_v1_ReplicationControllerList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationControllerList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor =
        getDescriptor().getMessageTypes().get(147);
    internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor,
            new java.lang.String[] {
              "Replicas", "MinReadySeconds", "Selector", "Template",
            });
    internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_descriptor
            .getNestedTypes()
            .get(0);
    internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationControllerSpec_SelectorEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor =
        getDescriptor().getMessageTypes().get(148);
    internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ReplicationControllerStatus_descriptor,
            new java.lang.String[] {
              "Replicas",
              "FullyLabeledReplicas",
              "ReadyReplicas",
              "AvailableReplicas",
              "ObservedGeneration",
              "Conditions",
            });
    internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor =
        getDescriptor().getMessageTypes().get(149);
    internal_static_k8s_io_api_core_v1_ResourceFieldSelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceFieldSelector_descriptor,
            new java.lang.String[] {
              "ContainerName", "Resource", "Divisor",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor =
        getDescriptor().getMessageTypes().get(150);
    internal_static_k8s_io_api_core_v1_ResourceQuota_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuota_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor =
        getDescriptor().getMessageTypes().get(151);
    internal_static_k8s_io_api_core_v1_ResourceQuotaList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor =
        getDescriptor().getMessageTypes().get(152);
    internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor,
            new java.lang.String[] {
              "Hard", "Scopes", "ScopeSelector",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaSpec_HardEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor =
        getDescriptor().getMessageTypes().get(153);
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor,
            new java.lang.String[] {
              "Hard", "Used",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_HardEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceQuotaStatus_UsedEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor =
        getDescriptor().getMessageTypes().get(154);
    internal_static_k8s_io_api_core_v1_ResourceRequirements_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor,
            new java.lang.String[] {
              "Limits", "Requests",
            });
    internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceRequirements_LimitsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ResourceRequirements_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ResourceRequirements_RequestsEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor =
        getDescriptor().getMessageTypes().get(155);
    internal_static_k8s_io_api_core_v1_SELinuxOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SELinuxOptions_descriptor,
            new java.lang.String[] {
              "User", "Role", "Type", "Level",
            });
    internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(156);
    internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ScaleIOPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "Gateway",
              "System",
              "SecretRef",
              "SslEnabled",
              "ProtectionDomain",
              "StoragePool",
              "StorageMode",
              "VolumeName",
              "FsType",
              "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(157);
    internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ScaleIOVolumeSource_descriptor,
            new java.lang.String[] {
              "Gateway",
              "System",
              "SecretRef",
              "SslEnabled",
              "ProtectionDomain",
              "StoragePool",
              "StorageMode",
              "VolumeName",
              "FsType",
              "ReadOnly",
            });
    internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor =
        getDescriptor().getMessageTypes().get(158);
    internal_static_k8s_io_api_core_v1_ScopeSelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ScopeSelector_descriptor,
            new java.lang.String[] {
              "MatchExpressions",
            });
    internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor =
        getDescriptor().getMessageTypes().get(159);
    internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ScopedResourceSelectorRequirement_descriptor,
            new java.lang.String[] {
              "ScopeName", "Operator", "Values",
            });
    internal_static_k8s_io_api_core_v1_Secret_descriptor =
        getDescriptor().getMessageTypes().get(160);
    internal_static_k8s_io_api_core_v1_Secret_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Secret_descriptor,
            new java.lang.String[] {
              "Metadata", "Data", "StringData", "Type",
            });
    internal_static_k8s_io_api_core_v1_Secret_DataEntry_descriptor =
        internal_static_k8s_io_api_core_v1_Secret_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_Secret_DataEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Secret_DataEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_descriptor =
        internal_static_k8s_io_api_core_v1_Secret_descriptor.getNestedTypes().get(1);
    internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Secret_StringDataEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor =
        getDescriptor().getMessageTypes().get(161);
    internal_static_k8s_io_api_core_v1_SecretEnvSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretEnvSource_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Optional",
            });
    internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor =
        getDescriptor().getMessageTypes().get(162);
    internal_static_k8s_io_api_core_v1_SecretKeySelector_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretKeySelector_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Key", "Optional",
            });
    internal_static_k8s_io_api_core_v1_SecretList_descriptor =
        getDescriptor().getMessageTypes().get(163);
    internal_static_k8s_io_api_core_v1_SecretList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_SecretProjection_descriptor =
        getDescriptor().getMessageTypes().get(164);
    internal_static_k8s_io_api_core_v1_SecretProjection_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretProjection_descriptor,
            new java.lang.String[] {
              "LocalObjectReference", "Items", "Optional",
            });
    internal_static_k8s_io_api_core_v1_SecretReference_descriptor =
        getDescriptor().getMessageTypes().get(165);
    internal_static_k8s_io_api_core_v1_SecretReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretReference_descriptor,
            new java.lang.String[] {
              "Name", "Namespace",
            });
    internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(166);
    internal_static_k8s_io_api_core_v1_SecretVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecretVolumeSource_descriptor,
            new java.lang.String[] {
              "SecretName", "Items", "DefaultMode", "Optional",
            });
    internal_static_k8s_io_api_core_v1_SecurityContext_descriptor =
        getDescriptor().getMessageTypes().get(167);
    internal_static_k8s_io_api_core_v1_SecurityContext_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SecurityContext_descriptor,
            new java.lang.String[] {
              "Capabilities",
              "Privileged",
              "SeLinuxOptions",
              "RunAsUser",
              "RunAsGroup",
              "RunAsNonRoot",
              "ReadOnlyRootFilesystem",
              "AllowPrivilegeEscalation",
              "ProcMount",
            });
    internal_static_k8s_io_api_core_v1_SerializedReference_descriptor =
        getDescriptor().getMessageTypes().get(168);
    internal_static_k8s_io_api_core_v1_SerializedReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SerializedReference_descriptor,
            new java.lang.String[] {
              "Reference",
            });
    internal_static_k8s_io_api_core_v1_Service_descriptor =
        getDescriptor().getMessageTypes().get(169);
    internal_static_k8s_io_api_core_v1_Service_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Service_descriptor,
            new java.lang.String[] {
              "Metadata", "Spec", "Status",
            });
    internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor =
        getDescriptor().getMessageTypes().get(170);
    internal_static_k8s_io_api_core_v1_ServiceAccount_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceAccount_descriptor,
            new java.lang.String[] {
              "Metadata", "Secrets", "ImagePullSecrets", "AutomountServiceAccountToken",
            });
    internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor =
        getDescriptor().getMessageTypes().get(171);
    internal_static_k8s_io_api_core_v1_ServiceAccountList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceAccountList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor =
        getDescriptor().getMessageTypes().get(172);
    internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceAccountTokenProjection_descriptor,
            new java.lang.String[] {
              "Audience", "ExpirationSeconds", "Path",
            });
    internal_static_k8s_io_api_core_v1_ServiceList_descriptor =
        getDescriptor().getMessageTypes().get(173);
    internal_static_k8s_io_api_core_v1_ServiceList_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceList_descriptor,
            new java.lang.String[] {
              "Metadata", "Items",
            });
    internal_static_k8s_io_api_core_v1_ServicePort_descriptor =
        getDescriptor().getMessageTypes().get(174);
    internal_static_k8s_io_api_core_v1_ServicePort_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServicePort_descriptor,
            new java.lang.String[] {
              "Name", "Protocol", "Port", "TargetPort", "NodePort",
            });
    internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor =
        getDescriptor().getMessageTypes().get(175);
    internal_static_k8s_io_api_core_v1_ServiceProxyOptions_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceProxyOptions_descriptor,
            new java.lang.String[] {
              "Path",
            });
    internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor =
        getDescriptor().getMessageTypes().get(176);
    internal_static_k8s_io_api_core_v1_ServiceSpec_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor,
            new java.lang.String[] {
              "Ports",
              "Selector",
              "ClusterIP",
              "Type",
              "ExternalIPs",
              "SessionAffinity",
              "LoadBalancerIP",
              "LoadBalancerSourceRanges",
              "ExternalName",
              "ExternalTrafficPolicy",
              "HealthCheckNodePort",
              "PublishNotReadyAddresses",
              "SessionAffinityConfig",
            });
    internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_descriptor =
        internal_static_k8s_io_api_core_v1_ServiceSpec_descriptor.getNestedTypes().get(0);
    internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceSpec_SelectorEntry_descriptor,
            new java.lang.String[] {
              "Key", "Value",
            });
    internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor =
        getDescriptor().getMessageTypes().get(177);
    internal_static_k8s_io_api_core_v1_ServiceStatus_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_ServiceStatus_descriptor,
            new java.lang.String[] {
              "LoadBalancer",
            });
    internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor =
        getDescriptor().getMessageTypes().get(178);
    internal_static_k8s_io_api_core_v1_SessionAffinityConfig_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_SessionAffinityConfig_descriptor,
            new java.lang.String[] {
              "ClientIP",
            });
    internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(179);
    internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_StorageOSPersistentVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeName", "VolumeNamespace", "FsType", "ReadOnly", "SecretRef",
            });
    internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(180);
    internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_StorageOSVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumeName", "VolumeNamespace", "FsType", "ReadOnly", "SecretRef",
            });
    internal_static_k8s_io_api_core_v1_Sysctl_descriptor =
        getDescriptor().getMessageTypes().get(181);
    internal_static_k8s_io_api_core_v1_Sysctl_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Sysctl_descriptor,
            new java.lang.String[] {
              "Name", "Value",
            });
    internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor =
        getDescriptor().getMessageTypes().get(182);
    internal_static_k8s_io_api_core_v1_TCPSocketAction_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_TCPSocketAction_descriptor,
            new java.lang.String[] {
              "Port", "Host",
            });
    internal_static_k8s_io_api_core_v1_Taint_descriptor =
        getDescriptor().getMessageTypes().get(183);
    internal_static_k8s_io_api_core_v1_Taint_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Taint_descriptor,
            new java.lang.String[] {
              "Key", "Value", "Effect", "TimeAdded",
            });
    internal_static_k8s_io_api_core_v1_Toleration_descriptor =
        getDescriptor().getMessageTypes().get(184);
    internal_static_k8s_io_api_core_v1_Toleration_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Toleration_descriptor,
            new java.lang.String[] {
              "Key", "Operator", "Value", "Effect", "TolerationSeconds",
            });
    internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor =
        getDescriptor().getMessageTypes().get(185);
    internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_TopologySelectorLabelRequirement_descriptor,
            new java.lang.String[] {
              "Key", "Values",
            });
    internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor =
        getDescriptor().getMessageTypes().get(186);
    internal_static_k8s_io_api_core_v1_TopologySelectorTerm_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_TopologySelectorTerm_descriptor,
            new java.lang.String[] {
              "MatchLabelExpressions",
            });
    internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor =
        getDescriptor().getMessageTypes().get(187);
    internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_TypedLocalObjectReference_descriptor,
            new java.lang.String[] {
              "ApiGroup", "Kind", "Name",
            });
    internal_static_k8s_io_api_core_v1_Volume_descriptor =
        getDescriptor().getMessageTypes().get(188);
    internal_static_k8s_io_api_core_v1_Volume_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_Volume_descriptor,
            new java.lang.String[] {
              "Name", "VolumeSource",
            });
    internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor =
        getDescriptor().getMessageTypes().get(189);
    internal_static_k8s_io_api_core_v1_VolumeDevice_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VolumeDevice_descriptor,
            new java.lang.String[] {
              "Name", "DevicePath",
            });
    internal_static_k8s_io_api_core_v1_VolumeMount_descriptor =
        getDescriptor().getMessageTypes().get(190);
    internal_static_k8s_io_api_core_v1_VolumeMount_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VolumeMount_descriptor,
            new java.lang.String[] {
              "Name", "ReadOnly", "MountPath", "SubPath", "MountPropagation",
            });
    internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor =
        getDescriptor().getMessageTypes().get(191);
    internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VolumeNodeAffinity_descriptor,
            new java.lang.String[] {
              "Required",
            });
    internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor =
        getDescriptor().getMessageTypes().get(192);
    internal_static_k8s_io_api_core_v1_VolumeProjection_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VolumeProjection_descriptor,
            new java.lang.String[] {
              "Secret", "DownwardAPI", "ConfigMap", "ServiceAccountToken",
            });
    internal_static_k8s_io_api_core_v1_VolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(193);
    internal_static_k8s_io_api_core_v1_VolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VolumeSource_descriptor,
            new java.lang.String[] {
              "HostPath",
              "EmptyDir",
              "GcePersistentDisk",
              "AwsElasticBlockStore",
              "GitRepo",
              "Secret",
              "Nfs",
              "Iscsi",
              "Glusterfs",
              "PersistentVolumeClaim",
              "Rbd",
              "FlexVolume",
              "Cinder",
              "Cephfs",
              "Flocker",
              "DownwardAPI",
              "Fc",
              "AzureFile",
              "ConfigMap",
              "VsphereVolume",
              "Quobyte",
              "AzureDisk",
              "PhotonPersistentDisk",
              "Projected",
              "PortworxVolume",
              "ScaleIO",
              "Storageos",
            });
    internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor =
        getDescriptor().getMessageTypes().get(194);
    internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_VsphereVirtualDiskVolumeSource_descriptor,
            new java.lang.String[] {
              "VolumePath", "FsType", "StoragePolicyName", "StoragePolicyID",
            });
    internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor =
        getDescriptor().getMessageTypes().get(195);
    internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_fieldAccessorTable =
        new com.google.protobuf.GeneratedMessageV3.FieldAccessorTable(
            internal_static_k8s_io_api_core_v1_WeightedPodAffinityTerm_descriptor,
            new java.lang.String[] {
              "Weight", "PodAffinityTerm",
            });
    io.kubernetes.client.proto.Resource.getDescriptor();
    io.kubernetes.client.proto.Meta.getDescriptor();
    io.kubernetes.client.proto.Runtime.getDescriptor();
    io.kubernetes.client.proto.RuntimeSchema.getDescriptor();
    io.kubernetes.client.proto.IntStr.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}
